设计模式之简单工厂模式
2016-12-08 18:51
197 查看
之前看设计模式的书,大概也就是知道有哪一些设计模式,如何去使用的,如何去实现的,但是没有比较深入地去了解,今天开始写写设计模式有哪一些,算是对之前学的内容一个总结吧
设计模式中的简单工厂模式
UML图:
![](https://img-blog.csdn.net/20161208133000174?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzA1NTM3NzM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
定义了一个抽象类,里面有抽象的方法,具体的类重写父类的抽象方法,然后又一个简单工厂类去管理这个抽象类。
我们建一个生产牙膏和牙刷的工厂,我们给工厂指令,“牙膏”指令那就生产牙膏,“牙刷”指令那就生产牙刷。
不多说,直接上代码,理解关系在代码如何处理和简单工厂模式的魅力。
简单工厂模式就到此为止了。
设计模式中的简单工厂模式
UML图:
定义了一个抽象类,里面有抽象的方法,具体的类重写父类的抽象方法,然后又一个简单工厂类去管理这个抽象类。
我们建一个生产牙膏和牙刷的工厂,我们给工厂指令,“牙膏”指令那就生产牙膏,“牙刷”指令那就生产牙刷。
不多说,直接上代码,理解关系在代码如何处理和简单工厂模式的魅力。
package test.pattern; /** * 这是一个物品抽象类 * @author CJB * */ public abstract class Good { /** * 定义物品的用途的抽象方法 */ public abstract void use(); /** * 定义物品价格的抽象方法 */ public abstract void price(); } package test.pattern; /** * 牙刷类 * @author CJB * */ public class ToothBrush extends Good { @Override public void use() { // TODO Auto-generated method stub System.out.println("用途:刷牙"); } @Override public void price() { // TODO Auto-generated method stub System.out.println("价格:5块钱"); } } package test.pattern; /** * 牙膏类 * @author CJB * */ public class ToothPaste extends Good { @Override public void use() { // TODO Auto-generated method stub b77f System.out.println("用途:健康口腔,洁白牙齿和清新口气"); } @Override public void price() { // TODO Auto-generated method stub System.out.println("价格:5块钱"); } } package test.pattern; /** * 工厂类 * @author CJB * */ public class GoodFactory { public Good getGood(String name){ Good good=null; switch (name) { case "牙膏": good= new ToothPaste(); break; case "牙刷": good=new ToothBrush(); break; } return good; } } package test.pattern; import org.junit.Test; /** * 测试类 * @author CJB * */ public class TestFactory { @Test public void test(){ //创建一个工厂,然后去生产你需要的东西,比如牙膏或者牙刷, //这里的牙膏牙刷就是一个客户的指令,但是如果命令多了,那就创建好多个GoodFactory类 //于是就有下一次要说的静态工厂类,也就是在getGood()方法上加上static。 //多态-----接口 接口参数 =new 实现类(); //工厂模式是对多态的一个修改版,实现高内聚低耦合 Good good=new GoodFactory().getGood("牙膏"); Good good2=new GoodFactory().getGood("牙刷"); good.use(); good.price(); good2.use(); good2.price(); } }
简单工厂模式就到此为止了。
相关文章推荐
- 设计模式1:简单工厂
- 设计模式之简单工厂模式
- 结合项目实例 回顾传统设计模式(四)工厂模式(简单工厂、普通工厂、抽象工厂)
- 设计模式中简单工厂模式的应用----java
- 设计模式之一 简单工厂模式
- 设计模式笔记一:简单工厂模式
- 【设计模式】简单工厂VS工厂方法
- 设计模式之 : 简单工厂模式
- 简单工厂设计模式-模拟磁盘打开文件
- 设计模式-----简单工厂
- 设计模式之一:简单工厂模式
- c#设计模式-简单工厂
- 07-简单工厂(不属于设计模式)
- 设计模式-简单工厂、工厂模式(转载)
- 简单理解常用设计模式(一)简单工厂-附加UML解释
- Java设计模式-简单工厂模式
- 设计模式--简单工厂(Simple Factory)
- C++设计模式-----简单工厂
- 《Android之大话设计模式》--设计模式 创建型模式 第一章:简单工厂模式
- Java设计模式编程中简单工厂与抽象工厂模式的使用实例