美文网首页
设计模式-- 工厂模式

设计模式-- 工厂模式

作者: AndroidTony | 来源:发表于2017-10-01 21:31 被阅读7次

1 工厂模式的种类

  • 1.1 简单工厂
简单工厂模式

只有一个工厂,例如通过反射传入Class或者直接通过name字段if
else判断的方式创建不同的汽车;
只能创建一种类型的对象(即同一父类或者接口),不符合开放封闭原则(即当需要创建新对象时,需要修改工厂类)。

  • 1.2 工厂方法
工厂方法模式

相对于简单工厂模式,工厂方法模式的工厂是可以扩展的,都是继承自同一抽象工厂类。当有新的产品需要生产时,只需要生成新的工厂类的产品类,而不需要修改原有代码,完全符合开放封闭原则。

  • 1.3 抽象工厂


    抽象工厂模式

    抽象工厂一般用于产品树或者产品族的场景。与工厂方法模式的区别就在于需要创建对象的复杂程度上。抽象工厂模式给客户端提供一个接口,可以创建多个产品族中的产品对象。例如:A和B为一个产品族、1和2为一个产品族

 public abstract class AbsFactory{  
        public abstract A CreateA();  
        public abstract B CreateB();  
    }  

public class Factory1 extends AbsFactory{
         public abstract A CreateA1();  
        public abstract B CreateB1(); 
}
public class Factory2 extends AbsFactory{
         public abstract A CreateA2();  
        public abstract B CreateB2(); 
}

由于每增加一个产品族,需要修改抽象工厂类以及子类,新增的产品类也很多,最终修改起来会非常丑陋。可以使用简单工厂+反射来进行优化。

2 实例

调用Iterable接口的iterator()方法,返回一个新的实例。

public interface Iterable<T>{
   Iterable<T> iterator();
}

相关文章

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 工厂模式

    java设计模式-工厂模式 工厂模式: 工厂模式是java设计模式里最常用的设计模式之一。 工厂模式属于创建型模式...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

  • 设计模式一、单例模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 简单单例(推荐...

  • 单件设计模式

    一、定义 设计模式 设计模式就是一种更好的编写代码方案。 常见设计模式 工厂设计模式、抽象工厂设计模式、抽象工厂设...

  • iOS设计模式(三)之抽象工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(一)之简单工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(二)之工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

网友评论

      本文标题:设计模式-- 工厂模式

      本文链接:https://www.haomeiwen.com/subject/mibaextx.html