java设计模式——01——工厂模式
1,普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。
1 package javat.t1;
2
3 public class Template {
4 public static void main(String[] args) {
5 AutoFactory af=new AutoFactory();
6 FactoryMode fm1=af.produce(1);
7 FactoryMode fm0=af.produce(0);
8 fm1.AutoOnOff();
9 fm0.AutoOnOff();
10 }
11 }
12 /*
13 * 第一步:创建接口
14 */
15 interface FactoryMode {
16 public void AutoOnOff();
17 }
18
19 /*
20 * 第二步:创建实现类
21 */
22 class TurnOn implements FactoryMode{
23 public void AutoOnOff() {
24 System.out.println("开关打开。");
25 }
26 }
27
28 class TurnOff implements FactoryMode{
29 public void AutoOnOff() {
30 System.out.println("开关关闭。");
31 }
32 }
33 /*
34 * 第三步:创建工厂类
35 */
36 class AutoFactory{
37 public FactoryMode produce(int signal){
38 if(signal==1){
39 return new TurnOn();
40 }else if(signal==0){
41 return new TurnOff();
42 }else{
43 System.out.println("请输入正确信号!");
44 return null;
45 }
46 }
47 }
2、多个工厂方法模式,是对普通工厂方法模式的改进。
在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象。
在上面代码中只需要修改[步骤三:工厂类]
1 /* 2 * 第三步:创建工厂类 3 */ 4 class AutoFactory{ 5 public FactoryMode produceTurnOn(){ 6 return new TurnOn(); 7 } 8 public FactoryMode produceTurnOff(){ 9 return new TurnOff(); 10 } 11 }
再对main 方法修改
1 public class Template { 2 public static void main(String[] args) { 3 AutoFactory af=new AutoFactory(); 4 FactoryMode fm1=af.produceTurnOn(); 5 FactoryMode fm0=af.produceTurnOff(); 6 fm1.AutoOnOff(); 7 fm0.AutoOnOff(); 8 } 9 }
结果一致!
3,静态工厂方法模式,将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。
先对普通工厂方法中的[工厂类]修改如[工程2:多个工厂方法模式]
1 /* 2 * 第三步:创建工厂类 3 */ 4 class AutoFactory{ 5 public static FactoryMode produceTurnOn(){ 6 return new TurnOn(); 7 } 8 public static FactoryMode produceTurnOff(){ 9 return new TurnOff(); 10 } 11 }
再修改main()方法
1 public class Template { 2 public static void main(String[] args) { 3 FactoryMode fm1=AutoFactory.produceTurnOn(); 4 FactoryMode fm0=AutoFactory.produceTurnOff(); 5 fm1.AutoOnOff(); 6 fm0.AutoOnOff(); 7 } 8 }
posted on 2017-03-06 23:38 weizhang715 阅读(82) 评论(0) 收藏 举报
浙公网安备 33010602011771号