工厂模式(屌丝专用)
2014-04-13 09:19
183 查看
钱是屌丝最缺的东西,为大家提供造钱工厂让你们嗨翻天。
意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
适用性:
1、屌丝用钱的时候才去造钱
2、屌丝决定造出什么毛爷爷
大家先看个类图
1.Product
定义工厂方法所创建的对象的接口。
2.ConcreteProduct
实现Product接口。
3.Creator
声明工厂方法,该方法返回一个Product类型的对象。
4.ConcreteCreator
重定义工厂方法以返回一个ConcreteProduct实例。
具体实现:
意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
适用性:
1、屌丝用钱的时候才去造钱
2、屌丝决定造出什么毛爷爷
大家先看个类图
1.Product
定义工厂方法所创建的对象的接口。
2.ConcreteProduct
实现Product接口。
3.Creator
声明工厂方法,该方法返回一个Product类型的对象。
4.ConcreteCreator
重定义工厂方法以返回一个ConcreteProduct实例。
具体实现:
package creatingtype.factorymethod; public interface Money { /** * 打印钞票 */ public void printMoney(); }
package creatingtype.factorymethod; public interface MoneyFactory { /** * 获得Money */ public Money getMoney(); }
package creatingtype.factorymethod; public class BlueMoney implements Money { /** * 打印钞票 */ public void printMoney() { System.out.println("你获得了蓝色的50元毛爷爷一张"); } }
package creatingtype.factorymethod; public class BlueMoneyFactory implements MoneyFactory { /** * 获得Money */ public Money getMoney() { return new BlueMoney(); } }
package creatingtype.factorymethod; public class RedMoney implements Money { /** * 打印钞票 */ public void printMoney() { System.out.println("你获得了红色的100元毛爷爷一张"); } }
package creatingtype.factorymethod; public class RedMoneyFactory implements MoneyFactory { /** * 获得Money */ public Money getMoney() { return new RedMoney(); } }
package creatingtype.factorymethod; // 工厂方法模式 public class MainClass { // 工厂方法模式同样属于类的创建型模式又被称 // 为多态工厂模式 。工厂方法模式的意义是定义一个创建 // 产品对象的工厂接口,将实际创建工作推迟到子类当中。 // 核心工厂类不再负责产品的创建,这样核心类成为一个 // 抽象工厂角色,仅负责具体工厂子类必须实现的接口, // 这样进一步抽象化的好处是使得工厂方法模式可以使系 // 统在不修改具体工厂角色的情况下引进新的产品。 public static void main(String[] args) { //获得BlueMoneyFactory MoneyFactory bmf = new BlueMoneyFactory(); //通过BlueMoneyFactory来获得BlueMoney实例对象 Money bm = bmf.getMoney(); bm.printMoney(); //获得RedMoneyFactory MoneyFactory rmf = new RedMoneyFactory(); //通过RedMoneyFactory来获得RedMoney实例对象 Money rm = rmf.getMoney(); rm.printMoney(); } }
相关文章推荐
- 工厂模式和抽象工厂模式总结与比较(屌丝专用)
- 建造者模式(屌丝专用)
- 屌丝专用!Linux迷你电脑 —— Utilite
- 抽象工厂模式(屌丝专用)
- 建造者模式(屌丝专用)
- 设置未识别的网络默认为专用网络
- 【屌丝程序的口才逆袭演讲稿50篇】第七篇:请留意我们身边的风景 【张振华.Jack】
- 关于工厂模式的探究
- iOS Core Animation Advanced Techniques(三):专用图层
- 专用计算器计算高精度减法计算器
- 盘点那些让屌丝目瞪口呆的细分暴利领域的土豪网站 !
- 工厂模式和抽象工厂模式
- 更新同步程序的page.php文件 Monxin专用(PHP代码函数)
- 获取选项value Monxin专用(PHP代码函数)
- 删除monxin子程序的相关数据表 Monxin专用(PHP代码函数)
- 大话设计模式(一)工厂模式
- e袋洗的屌丝战法 塞几件才划算?
- 工厂模式
- 8个不可不知的Mac OS X专用命令行工具
- 单例和工厂模式应用