factory工厂模式
工厂方法模式
工厂方法模式概述
工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现
简单理解:
与简单工厂模式类似,简单工厂模式是一个工厂,用户将条件为构造传入工厂,逻辑判断在工厂内,工厂只是一个创建对应的子类,然后利用泛型操作。
工厂模式:不同工厂创建不同子类,抽象出一个工厂接口,使用哪一种工厂由用户自己选择。
优点:
客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体
的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性
缺点:
需要额外的编写代码,增加了工作量
package com.factory; public interface Animal { public void eat(); } package com.factory; public class Dog implements Animal { @Override public void eat() { System.out.println("狗吃肉"); } } package com.factory; public class Cat implements Animal { @Override public void eat() { System.out.println("猫吃鱼"); } } package com.factory; public interface Factory { public Animal createAnimal(); } package com.factory; public class CatFactory implements Factory { @Override public Animal createAnimal() { return new Cat(); } } package com.factory; public class DogFactory implements Factory { @Override public Animal createAnimal() { return new Dog(); } } package com.factory; public class AnimalDemo { public static void main(String[] args) { //买一只狗 //建狗厂 Factory f=new DogFactory(); Animal d=f.createAnimal(); d.eat(); Factory f1=new CatFactory(); Animal c=f1.createAnimal(); c.eat(); } }