/*************************************************************************
* 创建型: Singleton, Builder, Abstract Factory, Factory Method, Prototype
* 结构型: Decorator, Composite, Proxy, Adapter, Facade
* 行为型: Template Method, Iterator, Observer, Strategy, Command, ChainOR */
package factory;
/**
* @author jiq
* 类型:Creational
* 定义: 抽象工厂模式(Abstract Factory) 提供一个接口,用于创建相关或者依赖对象的家族,
* 而不需要指明具体类。
* OO设计原则: 要依赖抽象,而不要依赖具体类
* 与工厂方法关系:抽象工厂模式用到了工厂方法模式。
* 缺点: 如果要拓展创建的产品,需要更改抽象工厂接口。
*/
/**(抽象工厂)
* 抽象的创建各种原料的工厂
* 但是创建的具体原料是什么,由其子类决定
* */
interface PizzaIngredientFactory{
public Dough createDough(); //工厂方法
public Sauce createSauce(); //工厂方法
public Cheese createCheese(); //工厂方法
}
/** 抽象工厂的子类,决定创建什么样的具体产品 */
class NYPizzaIndigredientFactory implements PizzaIngredientFactory{
public Cheese createCheese() { return new QQQCheese(); }
public Dough createDough() { return new YYYDough(); }
public Sauce createSauce() { return new WWWSauce(); }
}
/** 抽象工厂的子类,决定创建什么样的具体产品 */
class ChicagoPizzaIngredientFactory implements PizzaIngredientFactory{
public Cheese createCheese() { return new EEECheese(); }
public Dough createDough() { return new XXXDough(); }
public Sauce createSauce() { return new WWWSauce(); }
}
///////////////////////////////////////////////////////////////
/**
* 抽象的产品接口
* */
interface Dough{}
interface Sauce{}
interface Cheese{}
class XXXDough implements Dough{}
class YYYDough implements Dough{}
class WWWSauce implements Sauce{}
class QQQCheese implements Cheese{}
class EEECheese implements Cheese{}
//测试类
public class AbstractFactoryTest {
public static void main(String[] args) {
PizzaIngredientFactory nyfactory = new NYPizzaIndigredientFactory();
nyfactory.createCheese();
nyfactory.createDough();
nyfactory.createSauce();
}
}
分享到:
相关推荐
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
创建型设计模式----抽象工厂模式
c++设计模式-创建型-抽象工厂方法-最简单源码-qt工程
设计模式--抽象工厂模式实现多数据库连接 设计模式,.net设计模式,抽象工厂
抽象工厂模式是一种创建型设计模式,它提供了一种方式来创建一组相关或相互依赖的对象,而不需要指定具体的类。该模式允许客户端使用抽象的接口来创建一组相关的产品,而不需要关系实际产出的具体产品是什么。 在...
本例是一个抽象工厂的实例程序,纯粹的个人完全原创,里面有完整的注释及说明。非常适合于新手及对设计模式有困惑的。实例简单但清晰的阐述了抽象工厂模式的妙处。
抽象工厂模式为一个产品家族提供了统一的创建接口。当需要这个产品家族的某一系列的时候,可以从抽象工厂中选出相对应的系列来创建一个具体的工厂类别。 2. 抽象工厂模式中的角色 2.1 抽象工厂(Abstract...
这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 抽象工厂模式...
在前面介绍的两个创建型模式里面,我们解决的都是有关"new"的问题,用它们来避免显式指定类创建对象。我写的也非常简单易懂,相信看过的朋友们都应该对简单工厂模式、工厂方法模式的意图、所能解决的问题及适用情景...
3、抽象工厂模式(Abstract Factory Pattern) 用意:一个工厂生产一系列产品
抽象工厂的目的是要提供一个创建一系列相关或相互依赖对象的接口,而不需要指定它们具体的类。这种模式可以汽车制造厂所使用的金属冲压设备中找到。这种冲压设备可以制造汽车车身部件。同样的机械用于冲压不同的车型...
C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式),.net常用设计模式。
NULL 博文链接:https://jacky-dai.iteye.com/blog/2296369
抽象工厂模式是一种创建型设计模式,它的主要目标是提供一个接口或抽象类,用于创建一系列相关或依赖的对象。该模式的主要优点在于,它可以为客户端代码提供一个统一的接口,使得客户端无需关心具体实现细节。抽象...
C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式) 体验课程
C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式) (Level 300)
C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式)
NULL 博文链接:https://quicker.iteye.com/blog/575183
抽象工厂模式是一种创建型设计模式,它提供了一种将相关的对象家族分组创建的方式,而无需指定具体类。在该模式中,我们定义一个抽象工厂接口,该接口声明了一组创建不同类型对象的方法。每个具体工厂都实现了这个...