设计模式分类:
- 创建型模式(创建对象的): 单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
- 行为型模式(对象的功能): 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
- 结构型模式(对象的组成): 模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。
抽象工厂模式
静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护。同时当业务类别特别多时,如果我们使用工厂模式,那我们就需要记住每个要产生的对象的名字(或指定的字符串),这对于团队来说是很不合理的,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 {
@Override
public void eat() {
System.out.println("猫吃鱼.......");
}
}
4、动物狗的具体类
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("狗吃肉.....................");
}
}
5、动物猫的实现类
public class CatFactory implements AnimalFactory {
@Override
public Animal createAnimal() {
return new Cat();
}
}
6、动物狗的实现类
public class DogFactory implements AnimalFactory {
@Override
public 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() ;
}
}
继承关系如下: