Java设计模式之工厂设计模式

来源:互联网 发布:java 获取jsp页面内容 编辑:程序博客网 时间:2024/04/29 08:26

Java设计模式之工厂设计模式

感叹一下, 世界变化的好快, android的时代跨越也越来越快,从去年这时候android市场达到巅峰而如今,在群里经常看到有人哀怨找不到工作了,也是深有感触。
---------
深沉的我整理下发型,回归正经话题,工程设计模式指的不是一种设计模式, 那是什么呢?答:它确实不是一种设计模式,而是两种, 就是这么调皮,膨胀了,看来要找个女朋友管管了。。。

1、工厂方法设计模式

定义:定义一个用于创建对象的接口,让子类决定实力化哪个类。
说到这里,不禁想到了模板方法设计模式,个人觉得他们有极其相似的设计思路。模板方法是用于创建一系列共同的方法,让其具体时限延迟到子类中去,而工厂方法是针对于创建对象实例。
这里写图片描述
假设有两个接口,接口IConstructorFactory为创建实例的接口。IIstance为被创建出来的实例接口。只要实现这个接口久代表可以被IConstructorFactory的实现类创建的对象。
接着new 2个工厂实现类CreateClassAFactory、CreateClassBFactory,一个用于创建classA 的实例,另一个用于创建classB的实例。

IConstructorFactory.java

/** * Created by Marshon.Chen on 16/8/19. * Usage Desc:创建实例的工厂,相当于某连锁总部 */public interface IConstructorFactory {    //用于创建对象,具体创建什么对象由于子类的该方法决定。    IIstance createInstance();}

IIstance.java

/** * Created by Marshon.Chen on 16/8/19. * Usage Desc: 规范子类,空实现 */public interface IIstance {}

CreateClassAFactory.java

/** * Created by Marshon.Chen on 16/8/19. * Usage Desc:创建具体实例实现类,相当于某连锁分部 */public class CreateClassAFactory implements IConstructorFactory {    @Override    public IIstance createInstance() {        return new ClassA();    }}

CreateClassBFactory.java

/** * Created by Marshon.Chen on 16/8/19. * Usage Desc:创建具体实例实现类,相当于某连锁分部 */public class CreateClassBFactory implements IConstructorFactory {    @Override    public IIstance createInstance() {        return new ClassB();    }}

classA.java classB.java是普通的类不贴出来了。
代码很简单就是创建classA ,classB对象出来,然后它们都是由
IConstructorFactory的实现类创建出来的,换句话说,就是IConstructorFactory具体创建什么样的实例由它们的子类来决定,它只是规定了必须创建实现了IInstance接口的实例。这样看来,越来越像模板方法来,但是先人给他区分来出来,这种模版实例功能的模式属于创建型模式--工厂方法模式。

2、抽象工厂模式

俗称:Abstract Factory Pattern
定义:为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定它们的具体类。(未完待续)

0 0
原创粉丝点击