java设计模式-简单工厂模式

Posted ghsy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java设计模式-简单工厂模式相关的知识,希望对你有一定的参考价值。

  第一次好好的看设计模式,可能有不对的地方,大佬们可以下面指出,感谢!

  ----------- 分割线 ----------

  技术图片

电话父类,主要行为有打电话,上网,报告手机型号;

技术图片

子类有一系列手机,分别实现接口Phone;

技术图片

工厂类,主要是创造手机;

技术图片

接下来是执行类去调用工厂类创建手机,执行手机行为操作;

技术图片

控制台打印;

技术图片

换一种手机:

技术图片

需要什么手机就去工厂里面拿什么手机,工厂只负责创建手机职责,如果机型不够了,去创建Phone的子类就行,然后工厂里面添加子类类型即可,简单工厂模式实现。但是,这样是不是特别麻烦?每次多一个子类,是不是都需要去操作工厂里面的switch呢?有没有简单点的方法呢?答案是当然有啦,别忘了我们java中强大的反射机制!好了,下面对工厂进行改造:

技术图片

然后执行类执行工厂:

技术图片

这样子的话,要什么手机,我们把手机的类名传入工厂即可。但是这样子,如果有很多手机,这么多类名是不是也有点麻烦呢?可以把类名在包装一下?这时候新增一个枚举类去管理这些手机类型解决:

技术图片

技术图片

简单工厂差不多到这啦,摘自大话设计模式,以下是我个人理解:

技术图片

 

以上是关于java设计模式-简单工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

JAVA设计模式——工厂模式简单工厂模式工厂方法模式抽象工厂模式

JAVA设计模式--工厂模式

用java 编写程序写出简单的工厂模式?

java设计模式-工厂模式

设计模式Java 工厂模式与应用

Java设计模式学习记录-简单工厂模式工厂方法模式