Provide an interface for creating families of related or dependent objects without specifying
their concrete classes.
为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。
public abstract class AbstractProductA {
public void shareMethod() {
}
public abstract void doSomething();
}
public class ProductA1 extends AbstractProductA {
@Override
public void doSomething() {
System.out.println("productA1 method..");
}
}
public class ProductA2 extends AbstractProductA {
@Override
public void doSomething() {
System.out.println("productA2 method.....");
}
}
public abstract class AbstractProductB {
public void shareMethod() {
}
public abstract void doSomething();
}
public class ProductB1 extends AbstractProductB {
@Override
public void doSomething() {
System.out.println("productB1 method....");
}
}
public class ProductB2 extends AbstractProductB {
@Override
public void doSomething() {
System.out.println("productB2 method.....");
}
}
public abstract class AbstractCreator {
public abstract AbstractProductA createProductA();
public abstract AbstractProductB createProductB();
}
public class Creator1 extends AbstractCreator {
@Override
public AbstractProductA createProductA() {
return new ProductA1();
}
@Override
public AbstractProductB createProductB() {
return new ProductB1();
}
}
public class Creator2 extends AbstractCreator {
@Override
public AbstractProductA createProductA() {
return new ProductA2();
}
@Override
public AbstractProductB createProductB() {
return new ProductB2();
}
}
public class Client {
public static void main(String[] args) {
AbstractCreator creator1 = new Creator1();
AbstractCreator creator2 = new Creator2();
AbstractProductA a1 = creator1.createProductA();
AbstractProductA a2 = creator2.createProductA();
AbstractProductB b1 = creator1.createProductB();
AbstractProductB b2 = creator2.createProductB();
}
}
抽象工厂模式的优点
(1)封装性,每个产品实现类不是高层模块要关心的,它要关心的是什么?是接口、是抽象,它不关心对象是
如何创建的。它是由工厂类创建的,只要知道工厂类是谁,就能创造出一个需要的对象。
(2)产品族内的约束为非公开状态。
抽象工厂模式的使用场景
抽象工厂模式的使用场景定义非常简单:一个对象族(或是一组没有任何关系的对象)都有相同的约束,
则可以使用抽象工厂模式。
抽象工厂模式横向扩展容易,纵向扩展难。
分享到:
相关推荐
设计模式 - 抽象工厂模式
设计模式-抽象工厂模式(讲解及其实现代码)
设计模式-抽象工厂模式javademo java小程序
java常用设计模式-抽象工厂模式
设计模式--抽象工厂模式实现多数据库连接 设计模式,.net设计模式,抽象工厂
java,设计模式中的一种,抽象工厂设计模式。
PHP实现的抽象工厂模式,大家可以下载来参考学习下。
他是一种模式,计算机软件开发的一种模式,可以兼容多个数据库,以及数据库之间交互
创建型设计模式----抽象工厂模式
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部
c++设计模式-创建型-抽象工厂方法-最简单源码-qt工程
iOS设计模式-抽象工厂 理论:http://blog.csdn.net/z251257144/article/details/7482810
设计模式---抽象工厂模式(Abstract Factory)-UML图 (StarUML)
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是抽象工厂模式及应用场景和应用场景的代码事例。及各工厂模式的区别。
1.可以确信你从工厂得到的产品彼此是兼容的 2.可以避免具体产品和客户端代码之间的紧密耦合 3.符合单一职责原则 4.符合开闭原则
NULL 博文链接:https://jonathan-chen.iteye.com/blog/2194091
设计模式,抽象工厂 基本要领
自己写的设计模式 抽象工厂模式的Java源码,如果大家喜欢的话,就下载看看