详解设计模式——工厂方法模式
2017-05-25 21:26
155 查看
工厂方法模式(Factory Method)
定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。
类图:
1.很多工厂都有一些相同的行为,比如汽车工厂。我们需要抽象这些相同的行为成接口,每个工厂都实现这个接口。
1.
publicinterfaceIFactory{
2.
3.
publicvoid createProduct();
4.
}
2.生产相同的产品每个工厂所使用的方法可能不同,所以具体如何生产产品由具体工厂实现。
1.
publicclassFactoryimplementsIFactory{
2.
3.
@Override
4.
publicvoid createProduct(){
5.
6.
}
7.
}
工厂模式两要点:
1.工厂接口是工厂方法模式的核心,与调用者直接交互用来提供产品。
2.工厂实现决定如何实例化产品,是实现扩展的途径,需要有多少种产品,就需要有多少个具体的工厂实现。
适用场景:
1.在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过new就可以完成创建的对象,无需使用工厂模式。
2.工厂模式是一种典型的解耦模式,迪米特法则在工厂模式中表现的尤为明显。假如调用者自己组装产品需要增加依赖关系时,可以考虑使用工厂模式。将会大大降低对象之间的耦合度。
3.当需要系统有比较好的扩展性时,可以考虑工厂模式,不同的产品用不同的实现工厂来组装。
定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。
类图:
1.很多工厂都有一些相同的行为,比如汽车工厂。我们需要抽象这些相同的行为成接口,每个工厂都实现这个接口。
1.
publicinterfaceIFactory{
2.
3.
publicvoid createProduct();
4.
}
2.生产相同的产品每个工厂所使用的方法可能不同,所以具体如何生产产品由具体工厂实现。
1.
publicclassFactoryimplementsIFactory{
2.
3.
@Override
4.
publicvoid createProduct(){
5.
6.
}
7.
}
工厂模式两要点:
1.工厂接口是工厂方法模式的核心,与调用者直接交互用来提供产品。
2.工厂实现决定如何实例化产品,是实现扩展的途径,需要有多少种产品,就需要有多少个具体的工厂实现。
适用场景:
1.在任何需要生成复杂对象的地方,都可以使用工厂方法模式。有一点需要注意的地方就是复杂对象适合使用工厂模式,而简单对象,特别是只需要通过new就可以完成创建的对象,无需使用工厂模式。
2.工厂模式是一种典型的解耦模式,迪米特法则在工厂模式中表现的尤为明显。假如调用者自己组装产品需要增加依赖关系时,可以考虑使用工厂模式。将会大大降低对象之间的耦合度。
3.当需要系统有比较好的扩展性时,可以考虑工厂模式,不同的产品用不同的实现工厂来组装。
相关文章推荐
- Java 设计模式之工厂方法模式的详解(创建模式)
- 设计模式(2)-工厂方法模式详解(易懂)
- 设计模式——工厂方法模式详解
- Java设计模式详解之一工厂方法模式
- 详解设计模式中的工厂方法模式在Python程序中的运用
- 走穿java23种设计模式-2工厂方法模式详解
- Java 可复用的面向对象的设计模式之 工厂模式Factory详解 :简单工厂模式 工厂方法模式 抽象工厂模式
- [置顶] 【设计模式】之工厂方法模式详解与应用(二)
- 设计模式——工厂方法模式详解
- 详解设计模式中的工厂方法模式在Python程序中的运用
- 设计模式原则详解
- 设计模式原则详解
- .NET设计模式(5):工厂方法模式(Factory Method)
- .NET设计模式---工厂方法模式
- 设计模式(Design Patterns)--工厂方法模式(Factory Method)
- 设计模式系列漫谈之二 - 工厂方法模式
- 乐在其中设计模式(C#) - 工厂方法模式(Factory Method Pattern)
- .Net设计模式学习笔记(五):工厂方法模式(Factory Method)
- .NET设计模式:工厂方法模式(Factory Method)BY Terrylee
- 设计模式原则详解