设计模式之静态工厂模式
2016-12-09 10:48
246 查看
上一次说到简单工厂模式,感觉简单工厂模式是比较简单的,但是你有没有发现的是,如果这个工厂要生产比较多的牙膏和牙刷那就要老是去创建工厂实例,比较好的方法去解决的是把方法变成静态的,也就是静态工厂模式。
把上次的代码修改一下粘出来。如下:
静态工厂是在简单工厂模式上进行了一次修改,也就是在获取对象的方法加上static,那就成了静态工厂模式了。
Thank .
把上次的代码修改一下粘出来。如下:
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 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 static 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(){ Good good=GoodFactory.getGood("牙膏"); Good good2=GoodFactory.getGood("牙刷"); good.use(); good.price(); good2.use(); good2.price(); } } 测试结果和上一次的一样。
静态工厂是在简单工厂模式上进行了一次修改,也就是在获取对象的方法加上static,那就成了静态工厂模式了。
Thank .
相关文章推荐
- 设计模式-静态工厂之服务提供者框架
- 设计模式--静态工厂
- 设计模式:浅析 抽象工厂、工厂方法、简单(静态)工厂 java实现
- 设计模式-静态工厂之服务提供者框架
- php设计模式——简单工厂(静态工厂)模式
- 设计技巧11:静态创建方法(非设计模式中的工厂方法) 利用一个静态的方法封装构建器
- 跟着实例学习设计模式(2)-静态工厂(创建型)
- 设计模式之静态工厂模式
- 设计模式系列 1——StaticFactory(静态工厂),AbstractFactory(抽象工厂)
- 设计模式之静态工厂模式
- 小猪学设计模式——工厂模式之简单工厂(静态工厂)
- iOS设计模式:静态工厂相关
- 设计模式之静态工厂方法
- 设计模式学习003——工厂模式(工厂方法、抽象工厂),简单工厂【也叫静态工厂】
- java设计模式 单例设计模式+静态工厂模式
- iOS设计模式:静态工厂相关
- iOS设计模式:静态工厂相关
- 设计模式——简单工厂(又叫静态工厂方法,不属于GOF23中设计模式)
- 接口多态静态工厂设计模式模板设计模式
- 设计模式(一)--静态工厂模式