设计模式——工厂模式
来源:互联网 发布:淘宝win10激活码可信吗 编辑:程序博客网 时间:2024/06/07 13:47
设计模式——工厂模式
经过简单工厂的学习,发现在创建对象的时候,还是需要进行判断,这个判断少的时候还好,如果太多了,在使用的时候,这个简单工厂类就显得有些臃肿。所以还有一种模式,工厂模式。
package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public class Person { private Ax ax; public Person(Ax ax) { this.ax = ax; } public void kanshu(){ ax.kanshu(); } public void kanchai(){ ax.kanchai(); }}
package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public interface Ax { public void kanshu(); public void kanchai();}
package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public class WoodAx implements Ax { @Override public void kanshu() { System.out.println("我是木斧子,我来砍树"); } @Override public void kanchai() { System.out.println("我是木斧子,我来砍柴"); }}
package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public class StealAx implements Ax { @Override public void kanshu() { System.out.println("我是金斧子,我来砍树,我砍的好"); } @Override public void kanchai() { System.out.println("我是金斧子,我来砍柴,我砍的快"); }}
package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public abstract class AxFactory { public abstract Ax createAx();}
package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public class WoodAxFactory extends AxFactory{ @Override public Ax createAx() { return new WoodAx(); }}
package com.xueyoucto.xueyou;/** * Created by Administrator on 2016-07-05. */public class StealAxFactory extends AxFactory{ @Override public Ax createAx() { return new StealAx(); }}
package com.xueyoucto.xueyou;/** * Hello world! */public class App { public static void main(String[] args) { System.out.println("Hello World!"); int i = 3; AxFactory af; if (i == 1) { af = new WoodAxFactory(); } else { af = new StealAxFactory(); } Person p = new Person(af.createAx()); p.kanchai(); p.kanshu(); }}
运行后的结果如下图:
我们看一下,这段代码:
Person p = new Person(af.createAx());直接能够从工厂产生斧子,不需要关注是什么斧子,只需要使用就可以了。如果需要特定的斧子,可以在上面进行判断,选择对应的工厂进行生产斧子。
0 0
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式——工厂设计模式
- Java设计模式—工厂设计模式
- 设计模式——抽象工厂模式、工厂方法模式
- Java设计模式—工厂方法模式&抽象工厂模式
- Java设计模式—工厂方法模式&抽象工厂模式
- sas的卡方检验——以2016广东作文为例
- 学习使用Hystrix
- HDOJ 5194 DZY Loves Balls
- Dubbo架构设计详解
- 工作学习中参考过的外文网站(主计算机)
- 设计模式——工厂模式
- JBPM4.4节点详解(常用)
- Activity的四种launchMode
- 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (一)搭建你的环境
- Valid Palindrome
- Hibernate注解
- Cent OS安装Hadoop
- Spring配置事务管理,service端通过@Transactional注解
- SQL语句