设计模式之抽象工厂模式

来源:互联网 发布:加强网络基础设施建设 编辑:程序博客网 时间:2024/06/05 08:52

设计模式分类:

  • 创建型模式(创建对象的): 单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
  • 行为型模式(对象的功能): 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
  • 结构型模式(对象的组成): 模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。


抽象工厂模式

静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护。同时当业务类别特别多时,如果我们使用工厂模式,那我们就需要记住每个要产生的对象的名字(或指定的字符串),这对于团队来说是很不合理的,A写的代码B需要再去看一遍;但是如果使用抽象工厂就会有代码提示~这个我们肯定有体会。所以就用到简单工厂模式。
示例如下:
1、动物工厂的抽象
public interface AnimalFactory {public abstract Animal createAnimal() ;}
2、动物类的抽象
public abstract class Animal {public abstract void eat() ;}
3、动物猫的具体类
public class Cat extends Animal {@Overridepublic void eat() {System.out.println("猫吃鱼.......");}}
4、动物狗的具体类
public class Dog extends Animal {@Overridepublic void eat() {System.out.println("狗吃肉.....................");}}
5、动物猫的实现类
public class CatFactory implements AnimalFactory {@Overridepublic Animal createAnimal() {return new Cat();}}
6、动物狗的实现类
public class DogFactory implements AnimalFactory {@Overridepublic Animal createAnimal() {return new Dog();}}
7、测试类
public class AnimalFactoryTest {public static void main(String[] args) {AnimalFactory af = new DogFactory() ;Animal animal = af.createAnimal() ;animal.eat() ;af = new CatFactory() ;animal = af.createAnimal() ;animal.eat() ;}}
继承关系如下:


0 0
原创粉丝点击