设计模式__工厂模式
来源:互联网 发布:扎克拉文体测数据 编辑:程序博客网 时间:2024/06/06 19:51
简单工厂模式
简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
简单工厂模式的核心思想就是:有一个专门的类来负责创建实例的过程。
好处:创建对象由工厂类去创建,当我们要加入对象时,采用这种方法很方便,而不用去改太多代码。
工厂模式的UML图
下面还是看实例吧!
食品店,客人在食品店拿着菜单可以点不同的菜。
这里 菜单就相当于一个工厂类,去产生客人所点的食品
这里抽象类就是指食品,食品就包含了所有的食品
具体实现类就是去完成抽象类,具体产生食品的做法。
package factory; //抽象类A 所有食品的超类,具体食品类须要实现这个类的方法 interface Food { void method();//制作某个食品的方法 } //具体实现类A class Bread implements Food { //产生一个面包 public void method() { System.out.println("你点了一个面包"); } } //具体实现类B class Chicken implements Food { //产生一个鸡翅 public void method() { System.out.println("你点了一对鸡翅"); } } //具体实现类C class Cola implements Food { //产生一个可乐 public void method() { System.out.println("你点了一份可乐"); } } /* * 如果我们想加入其它的食品, * 在这里直接编写一个类,去实现Food即可,大大减少了代码的修改 * class ... */ //工厂类,用于产生对象 class Factory { // 因为产生其子类,所以返回其超类。 static Food getFood(int n) { if(n==1) return new Bread(); // 通过反射 Bread.class.newInstance();这个得解决异常 else if(n==2) return new Chicken(); else if(n==3) return new Cola(); return null; } } //客户端 class SimpleFactoryText { public static void main(String [] args) throws Exception { //通过工厂类建立对象 Food f = Factory.class.newInstance().getFood(1); // Food f = Factory.getFood(1); f.method(); Food f2 = Factory.class.newInstance().getFood(2); f2.method(); Food f3 = Factory.class.newInstance().getFood(3); f3.method(); } }
0 0
- 设计模式__工厂模式
- 设计模式__工厂模式
- 1、设计模式__创建型__简单工厂
- 2、设计模式__创建型__工厂方法
- 3、设计模式__创建型__抽象工厂
- php设计模式之三__工厂模式
- 设计模式__代理模式
- 设计模式__装饰模式
- 设计模式------工厂模式
- 设计模式------工厂模式
- 设计模式 [ 工厂模式 ]
- 设计模式--工厂模式
- 设计模式-工厂模式
- 设计模式--工厂模式
- 设计模式 工厂模式
- 设计模式-工厂模式
- 设计模式 -- 工厂模式
- 设计模式-工厂模式
- Hadoop C++单词统计
- sql 异常处理 例子
- 电子商务商业模式实训及思考 第六问
- ZendStudio调试功能使用说明
- 多表连接解题思路
- 设计模式__工厂模式
- about httpt.conf
- Parcelable vs Serializable
- C#线程同步(2)- 临界区&Monitor
- 图书管理系统开发--问题解决
- Oracle操作及卸载
- TOJ 3886 Simplifying the Farm / 最小生成树+计数
- 倒排索引解题思路
- keil报错与解决方法