什么是工厂方式模式?
工厂方法模式又称为多态工厂模式,他是简单工作模式的一个扩展。相比简单工厂模式,它更符合“开放-封闭”原则,扩展性更好。
包含的角色和职责:
1.抽象工厂角色:工厂方法模式的核心,任何工厂类都必须实现这个接口。
2.具体工厂角色:具体工厂类是抽象工厂的一个实现,负责实例化产品对象。
3.抽象产品角色:工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
4.具体产品角色:工厂方法模式所创建的具体实例对象
案例:
1.抽象工厂角色:
- public interface AnimalFactory {
- public Animal getAnimal();
- }
2.具体工厂角色:
- public class CatFactory implements AnimalFactory {
- @Override
- public Animal getAnimal() {
- return new Cat();
- }
- }
- public class DogFactory implements AnimalFactory {
- @Override
- public Animal getAnimal() {
- return new Dog();
- }
- }
3.抽象产品角色:
- public interface Animal {
- public void eat();
- }
4.具体产品角色:
- public class Cat implements Animal {
- @Override
- public void eat() {
- System.out.println("cat eat ...");
- }
- }
- public class Dog implements Animal {
- @Override
- public void eat() {
- System.out.println("dog eat ...");
- }
- }
5.测试:
- public static void main(String[] args) {
- AnimalFactory dogFactory = new DogFactory();
- dogFactory.getAnimal().eat();
-
- AnimalFactory catFactory = new CatFactory();
- catFactory.getAnimal().eat();
- }