java设计模式之简单工厂模式
来源:互联网 发布:股票自动交易 源码 编辑:程序博客网 时间:2024/06/05 16:33
简单工厂模式(Simple Factory Pattern)又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建细节。
简单工厂模式其实不是一个设计模式,反而比较像是一种编程习惯。但由于经常被使用,所以我们先来学习。
用简单工厂模式写的烤鱼店实例类图如下:
客人通过KaoYu类的orderFish()方法来点单,SimpleFishFactory类的orderFish()负责创建不同烤鱼类型,Fish是烤鱼父类,CaoYu,NianYu,JiYu,LuYu是具体实现。
Fish类代码实现:
public class Fish { String name = "Unknow name"; public String getname(){ return name; }}
CaoYu类代码实现:
public class CaoYu extends Fish{ public CaoYu(){ name = "草鱼"; System.out.println("烤"+name); }}
NianYu类代码实现:
public class NianYu extends Fish{ public NianYu(){ name = "鲶鱼"; System.out.println("烤"+name); }}
JiYu类代码实现:
public class JiYu extends Fish{ public JiYu(){ name = "鲫鱼"; System.out.println("烤"+name); }}
LuYu类代码实现:
public class LuYu extends Fish{ public LuYu(){ name = "鲈鱼"; System.out.println("烤"+name); }}
SimpleFishFactory类代码实现:
public class SimpleFishFactory { public Fish createFish(String type){ if (type.equals("CaoYu")) { return new CaoYu(); }else if (type.equals("NianYu")) { return new NianYu(); }else if (type.equals("JiYu")) { return new JiYu(); }else if (type.equals("LuYu")) { return new LuYu(); } return null; }}
createFish方法根据传进来的不同参数,返回一个对应的对象。
KaoYu类代码实现:
public class KaoYu { SimpleFishFactory factory; public KaoYu(SimpleFishFactory factory){ this.factory = factory; } public Fish orderFish(String type){ Fish fish; fish = factory.createFish(type); System.out.println("我是一条烤"+fish.getname()); return fish; }}
KaoYu类传进来一个SimpleFishFactory对象,然后orderFish根据type来返回一个对应的对象。
测试类KaoYuTest代码实现:
public class KaoYuTest { public static void main(String[] args){ SimpleFishFactory factory = new SimpleFishFactory(); KaoYu kaoYu = new KaoYu(factory); kaoYu.orderFish("JiYu"); }}
执行结果:
烤鲫鱼我是一条烤鲫鱼
0 0
- JAVA设计模式之工厂模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- 【Java设计模式】之简单工厂模式
- Java--设计模式之简单工厂模式
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- Java设计模式之简单工厂模式
- Java设计模式之“简单工厂模式”
- Java设计模式之简单工厂模式
- JAVA设计模式之------简单工厂模式
- java设计模式之简单工厂模式
- 对一个二维数组中的数据排序,方法如下: 将整个数组中值最小的元素所在行调整为数组第一行, 将除第一行外的行中最小元素所在行调整为第2行, 将除第1,2行外的行中最小值元素所在行调整为第3行,以此类推
- MyBatis 源码分析——介绍
- 枚举
- 微软企业库方式(.net)与Hibernate的数据库操作对比
- jdbc的不足之处
- java设计模式之简单工厂模式
- unity5.x assetbundle打包和加载
- 如何算三角形的cotangent
- 推荐一下日常效率工具,欢迎讨论
- 特殊回文数
- 环境变量的配置及作用
- oj1009
- 初识Nginx(二):虚拟机功能
- centos/redhat安装yum源