工厂模式
- 概述:工厂方法中抽象工厂负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现。
- 优点:客户端不需要再负责对象的创建,从而明确了各个类的职责,只需要增加一个具体的类和具体的工厂即可,不影响已有的代码,后期容易维护,增强了系统的扩展性。
- 缺点:需要额外编写代码,增加了工作量
/** * 工厂模式接口 */ interface Factory { public Animal create(); } public class Demo { public static void main(String[] args) { // 获取猫对象 CatFactory cf = new CatFactory(); Cat c = (Cat)cf.create(); c.eat(); // 获取狗对象 DogFactory df = new DogFactory(); Dog d = (Dog)df.create(); d.eat(); } } /** * 动物抽象类 */ abstract class Animal { abstract void eat(); } /** * 动物抽象类子类(猫) */ class Cat extends Animal { @Override void eat() { System.out.println("猫吃鱼"); } } /** * 动物抽象类子类(狗) */ class Dog extends Animal { @Override void eat() { System.out.println("狗吃肉"); } } /** * 猫工厂 */ class CatFactory implements Factory { @Override public Animal create() { return new Cat(); } } /** * 狗工厂 */ class DogFactory implements Factory { @Override public Animal create() { return new Dog(); } }
网友评论