设计模式-简单工厂模式概述和使用-接口
2017-06-04 14:38
435 查看
简单工厂模式概述:
又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例
优点:
客户端不需要再负责对象的创建,从而明确了各个类的职责
缺点:
这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,
就需要不断地修改工厂类,不利于后期的维护
又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例
优点:
客户端不需要再负责对象的创建,从而明确了各个类的职责
缺点:
这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,
就需要不断地修改工厂类,不利于后期的维护
package cn.itcast_01; public abstract class Animal { public abstract void eat(); }
package cn.itcast_01; public class Cat extends Animal { @Override public void eat() { System.out.println("猫吃鱼"); } }
package cn.itcast_01; public class Dog extends Animal { @Override public void eat() { System.out.println("狗吃肉"); } }
package cn.itcast_01; public class AnimalFactory { private AnimalFactory() { } // public static Dog createDog() { // return new Dog(); // } // // public static Cat createCat() { // return new Cat(); // } public static Animal createAnimal(String type) { if ("dog".equals(type)) { return new Dog(); } else if ("cat".equals(type)) { return new Cat(); } else { return null; } } }
package cn.itcast_01; public class AnimalDemo { public static void main(String[] args) { // 具体类调用 Dog d = new Dog(); d.eat(); Cat c = new Cat(); c.eat(); System.out.println("------------"); // 工厂有了后,通过工厂给造 // Dog dd = AnimalFactory.createDog(); // Cat cc = AnimalFactory.createCat(); // dd.eat(); // cc.eat(); // System.out.println("------------"); // 工厂改进后 Animal a = AnimalFactory.createAnimal("dog"); a.eat(); a = AnimalFactory.createAnimal("cat"); a.eat(); a = AnimalFactory.createAnimal("pig");// NullPointerException if (a != null) { // 出现空指针,要加判断 a.eat(); } else { System.out.println("对不起,暂时不提供这种动物"); } } }
相关文章推荐
- 设计模式_Java_简单工厂模式概述和使用
- 设计模式-工厂方法模式的概述和使用-接口
- 设计模式_简单工厂模式概述和使用
- 使用简单工厂模式来进行Python的设计模式编程
- C#设计模式之 :Abstract_Factory模式(使用接口实现)
- 设计模式_装饰模式概述和使用
- Java 接口应用案例 (策略设计模式使用)
- 设计模式之简单工厂模式(使用C++)
- php中使用接口实现工厂设计模式的代码
- 设计模式在cocos2d-x中的使用--简单工厂模式(Simple Factory)
- 观察者设计模式(Observable 类Observer接口的使用)
- 设计模式_模版设计模式概述和使用
- Java使用简单工厂模式对面向接口编程模式的深度解耦实现
- 以接口为主导的设计中, 我在使用的框架模式
- 设计模式-模版设计模式概述和使用-抽象类
- 设计模式_工厂方法模式的概述和使用)
- 设计模式(二)-- 接口设计模式概述
- php使用接口实现工厂设计模式
- 设计模式后的设计理念:需求变化,针对接口编程,优先使用聚合
- GOF23设计模式之观察者模式的理解与实现2(使用java自带的观察者类和接口)