我既要画图又要染色,且画图和染色有个对应关系:Circle对应Blue,Rectangle对应Green, 这个时候我们就要使用抽象工厂模式, 形状和颜色属于‘同族下的不同产品’,设计抽象工厂,定义创建形状和创建颜色的方法,同时设计多个子工厂,每个子工厂继承抽象工厂,并且实现属于自己的形状和颜色的创建。 (3). 代码实操 具体产品类(形...
需要画各种图,比如Circle、Rectangle、Square,首先要有一个Draw方法,我们可以把它抽象成一个接口,让每个形状类去实现它;形状类的创建我们采用工厂去创建,可以先抽象出来一个工厂接口,声明创建对象的方法CreateShape,然后让每个形状的子工厂去实现它。 如果形状有限,且不经常添加,直接创建一个简单工厂来实例化各个形状类...
抽象工厂模式是工厂方法模式的升级版,它用来创建一组相关或者相互依赖的对象。 它与工厂方法模式的区别在于:工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品等级结构,表现为一个接口或抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象...
再形象点说就是:比如我们需要购买一批电脑,我们只要把我们的需求告诉电脑工厂,电脑工厂就会帮我们把这批电脑做好,而我们是不用自己去做这个电脑的,也不用我们自己去知道这个电脑是怎么做出来的,这就是工厂模式。 工厂模式分为简单工厂模式,工厂方法模式,抽象工厂模式,它们都属于设计模式中的创建型模式。其主要功能都...
3.5 工厂方法模式的优缺点 四、抽象工厂模式 4.1 模式定义 4.2 模式结构 4.3 类图 4.4 具体实现 4.5 抽象工厂模式的优缺点 一、关于GoF 《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)是软件工程领域有关设计模式的一本书,提出和总结了对于一些常见软件设计...
简单工厂模式(Simple Factory) 工厂方法模式(Factory Method) 抽象工厂模式(Abstract Factory) 1.2 场景:操作不同类型的动物 我们假设有一个场景,程序需要对不同种类的动物进行操作,动物可以发出不同的声音。 1.2.1 不用工厂模式 1.2.1.1 分析 在这个例子中,客户端代码直接依赖于具体的动物类 (Dog,Cat,Bird),这...
1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。 GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简单工厂模式(Simple Factory)看为工厂方法模式的一...
抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级...
设计模式中的工厂模式(Factory Design pattern)是一个比较常用的创建型设计模式,其中可以细分为三种:简单工厂(Simple Factory)、工厂方法(Factory Method)和抽象工厂(Abstract Factory)。那么三者有什么区别呢?先说结论: 简单工厂:只有唯一工厂(简单工厂),一个产品接口/抽象类,根据简单工厂中的静态方法来创建具体产品对象...
抽象工厂模式是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。 抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。