黑马程序员——设计模式——简单工厂模式(静态工厂方法模式)
2015-04-23 19:25
393 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
较为方便的创建对象的方式
优点:较为方便的创建对象的方式,不用考虑内部实现方法
缺点:违反的高内聚的原则,如果新添加具体类,就必须修改工厂
实现方式
1.创建抽象产品角色(抽象类或接口,所有类的父类,包含公共的功能)
2.创建具体产品角色(实现类,继承抽象类)
3.创建工厂角色(通过传递参数,静态方法返回具体类的对象,由工厂传入的参数决定生成的对象)
1.抽象产品角色
测试类
输出
狗吃骨头
猫吃鱼
较为方便的创建对象的方式
优点:较为方便的创建对象的方式,不用考虑内部实现方法
缺点:违反的高内聚的原则,如果新添加具体类,就必须修改工厂
实现方式
1.创建抽象产品角色(抽象类或接口,所有类的父类,包含公共的功能)
2.创建具体产品角色(实现类,继承抽象类)
3.创建工厂角色(通过传递参数,静态方法返回具体类的对象,由工厂传入的参数决定生成的对象)
1.抽象产品角色
//产品类 //抽象产品角色 //所有具体产品的父类定义的产品的公有方法 abstract class Animal{ abstract void eat();//公有方法 }2.创建具体产品角色
<span style="font-size:10px;">//具体产品角色 //产品的具体实现 class Dog extends Animal{ void eat() { System.out.println("狗吃骨头"); } } //具体产品角色 //产品的具体实现 class Cat extends Animal{ void eat() { System.out.println("猫吃鱼"); } }</span>3.创建工厂角色(如果添加新的具体类必须修改工厂)
//工厂类 //工厂角色 //负责创建所有的对象的工厂 class SimpleFactory{ <span style="white-space:pre"> </span>//根据参数创建具体类 public static Animal createAnimal(String type){ if("dog".equals(type.toLowerCase())){ return new Dog(); }else if("cat".equals(type.toLowerCase())){ return new Cat(); } return null; } }
测试类
public class Main { public static void main(String[] args) { Animal a = SimpleFactory.createAnimal("dog"); a.eat(); a = SimpleFactory.createAnimal("cat"); a.eat(); } }
输出
狗吃骨头
猫吃鱼
相关文章推荐
- 第一篇、创建型设计模式——简单工厂模式(静态工厂方法模式)
- Java 设计模式之 简单工厂模式(静态工厂方法模式)
- 设计模式 一一一 简单工厂模式(静态工厂方法模式)
- 简单工厂模式(静态工厂方法模式)【设计模式】
- php设计模式 — 简单工厂模式(静态工厂方法模式)
- 黑马程序员-设计模式之简单工厂模式(引入)
- Java设计模式学习记录-简单工厂模式、工厂方法模式
- C++设计模式之1-工厂模式(简单工厂模式-工厂方法模式-抽象工厂模式)
- Java 可复用的面向对象的设计模式之 工厂模式Factory详解 :简单工厂模式 工厂方法模式 抽象工厂模式
- 黑马程序员_day06 面向对象(静态,对象的初始化和对象调用成员过程,单例设计模式)
- 黑马程序员_java面向对象总结【2】(静态、单例设计模式)
- 黑马程序员java学习第六天,static静态的使用及单例设计模式
- 黑马程序员_静态及单例设计模式
- JAVA设计模式 - 简单工厂模式、工厂方法模式、抽象工厂模式
- 黑马程序员——><基础加强一(eclipse-静态导入-享元设计模式-自动拆装箱-枚举-反射-类加载器)>
- 黑马程序员__4java基础 静态和几种设计模式
- 黑马程序员---静态代码块、单例设计模式
- 设计模式<四>简单工厂模式与工厂方法模式
- 2.工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)(设计模式笔记)
- Java设计模式之工厂模式(简单工厂模式和工厂方法模式)