【Java】Java工厂模式之简单工厂
来源:互联网 发布:php面向对象程序设计 编辑:程序博客网 时间:2024/05/05 14:43
package com.app;import java.util.Date;/* * 工厂模式:简单工厂、工厂方法、抽象工厂 * * */public class Test0718_Factory {public static void main(String[] args) {Fruit.FruitJudge(new Date());Fruit.FruitJudge(5);Fruit.FruitJudge(new Fruit());Fruit.FruitJudge(new Cherry());Fruit.FruitJudge(new Apple());System.out.println();Fruit fruit1 = Fruit.getFruit(1);Fruit fruit2 = Fruit.getFruit(2);fruit1.grow();fruit2.grow();((Apple)fruit2).m1();}}class Fruit {public void grow(){System.out.println("水果在生长");}public static void FruitJudge(Object obj){if(! (obj instanceof Fruit)){System.out.println("参数类型不兼容");} else {if(obj instanceof Cherry){Cherry f = (Cherry)obj;//造型,高->低f.grow();} else if(obj instanceof Apple){Apple f = (Apple)obj;f.grow();f.m1();//强转后,可以明确调用子类新加的成员} else {Fruit f = (Fruit)obj;f.grow();}}}//简单工厂模式,根据值的不同返回不同的子类实例public static Fruit getFruit(int code){Fruit obj = null;if(code==1) {obj = new Cherry();} else if(code==2) {obj = new Apple();} else {obj = new Fruit();}return obj;}}class Cherry extends Fruit {public void grow(){System.out.println("樱桃在生长");}}class Apple extends Fruit {public void grow(){System.out.println("苹果在生长");}public void m1(){ System.out.println("苹果的m1"); }}
执行结果:
---------- 运行 ----------
参数类型不兼容
参数类型不兼容
水果在生长
樱桃在生长
苹果在生长
苹果的m1
樱桃在生长
苹果在生长
苹果的m1
输出完成 (耗时 0 秒) - 正常终止
- 【Java】Java工厂模式之简单工厂
- Java工厂模式之简单工厂模式
- java 工厂模式之简单工厂(01)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- java设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式之简单工厂模式
- Java工厂模式---之简单工厂模式,工厂模式,抽象工厂模式
- java学习之工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- java工厂模式-简单工厂,工厂方法,抽象工厂模式
- Java设计模式(二):工厂模式(Factory)之简单工厂
- Java设计模式之工厂模式——简单工厂
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- json解析
- Hadoop进军机器学习:Cloudera收购Myrrix共创“Big Learning”
- 读60行代码完成的NoSQL数据库,看数据库打造面临的挑战
- White Elephant:开发者必备的Hadoop利器
- 【Java】Java工厂模式之简单工厂
- 数据库性能优化详解
- 数据挖掘领域十大经典算法初探
- codeforces ABBYY Cup 3.0 - Finals (online version) B2. Shave Beaver!
- [Java]读取文件方法大全
- mysql初识之数据文件及其他文件
- 2013 • 中国云计算大势
- 对链表的相关操作及数据结构的再理解
- IOS 消息推送原理及实现总结