java工厂模式(设计模式)
来源:互联网 发布:探索性数据分析 pdf 编辑:程序博客网 时间:2024/05/22 13:47
工厂方法的作用和目的就是分离对象的创建和使用
/** * 女朋友接口 */public interface IGirl {// 洗衣服public void washClothes();// 做饭public void cook();// 跳舞public void dance();// 唱歌public void sing();}
/** * * 林无敌类实现女朋友接口 */public class Linwudi implements IGirl{@Overridepublic void washClothes() {System.out.println("林无敌洗衣服");}@Overridepublic void cook() {System.out.println("林无敌做饭");}@Overridepublic void dance() {System.out.println("林无敌跳舞");}@Overridepublic void sing() {System.out.println("林无敌唱歌");}}
/** * * 凤姐类实现女朋友接口 */public class Fengjie implements IGirl{@Overridepublic void washClothes() {System.out.println("凤姐洗衣服");}@Overridepublic void cook() {System.out.println("凤姐做饭");}@Overridepublic void dance() {System.out.println("凤姐跳舞");}@Overridepublic void sing() {System.out.println("凤姐唱歌");}}
/** * * 工厂类 */public class GirlFactory {/** * 工厂方法负责生产产品(即负责创建对象) ,这里生产女朋友产品(即创建女朋友对象) * 工厂方法的作用和目的就是分离对象的创建和使用(周星星类负责使用女朋友对象,工厂类负责创建女朋友对象) */public static IGirl factory(int type) {IGirl girl = null;switch (type) {case 1:girl = new Linwudi();break;case 2:girl = new Fengjie();break;default:throw new IllegalArgumentException("参数错误,不能生产对应的产品");}return girl;}}
/** * 周星星类 */public class Zhouxingxing {/** * 生活的方法 * (周星星只要使用女朋友对象即可,至于女朋友怎么来的,周星星不管,那 * 是女朋友工厂类该管的事情,周星星需要女朋友对象的时候只需要调用女朋友工厂类的工厂方法就能得到一个具 * 体的女朋友对象,得到女朋友对象之后拿过来使用就可以了。) * 工厂方法的作用和目的就是分离对象的创建和使用(周星星类负责使用女朋友对象,工厂类负责创建女朋友对象) * */public void life() {//生活时,需要一个女朋友,调用工厂类的工厂方法,返回一个具体的女朋友对象IGirl girl = GirlFactory.factory(2);girl.cook();girl.dance();girl.washClothes();girl.sing();}}
/*** 测试类*/public class TestZhouxingxing {public static void main(String[] args) {Zhouxingxing zhouxingxing = new Zhouxingxing();zhouxingxing.life();}}
0 0
- java设计模式----工厂模式
- java 设计模式-工厂模式
- java设计模式-工厂模式
- java设计模式------工厂模式
- JAVA设计模式-工厂模式
- Java 设计模式 工厂模式
- Java设计模式-工厂模式
- Java设计模式--工厂模式
- Java设计模式 - 工厂模式
- java设计模式--工厂模式
- Java设计模式:工厂模式
- Java设计模式--工厂模式
- java设计模式-------工厂模式
- java设计模式------工厂模式
- JAVA设计模式:工厂模式
- java设计模式:工厂模式
- java设计模式 ----工厂模式
- Java设计模式--工厂模式
- angularjs 一个数组 两层循环显示 例如一行三个,多行
- 快速提升游戏开发技术
- slice
- cudaMemcpyToSymbol()的invalid device symbol问题
- SimpleDraweeView低配置手机显示svg矢量图问题
- java工厂模式(设计模式)
- HDU 4474:Yet Another Multiple Problem
- Spring获取bean工厂的两种方法
- 增强For
- Spring Boot系列之十 日志配置
- 程序员该如何定位?看这四大方向
- 分分钟推导神经网络
- Python中列表推导式总结
- js 去掉浏览器右击默认事件