首页 > 程序开发 > 软件开发 > 其他 >

创建型设计模式之简单工厂模式

2017-03-03

创建型设计模式之简单工厂模式:由一个工厂对象决定创建那一种产品类的实例,根据自变量的不同返回不同的产品类。

创建型设计模式之简单工厂模式:由一个工厂对象决定创建那一种产品类的实例,根据自变量的不同返回不同的产品类。

解决问题:解决多重简单对象重复创建的问题,但是不能解决新建产品类型的问题(开闭原则),添加新产品的问题可以在简单工厂模式再次进行抽象化处理,使用抽象工厂设计模式。

简单工厂模式参与角色:

工厂类角色:含有应用紧密相关的商业逻辑,工厂类在客户端的直接调用下创建产品对象,往由一个具体类实现

抽象产品角色:抽象产品由一个接口或者抽象类实现

具体产品:实现抽象产品接口

工厂类角色:AnimalFactory

public abstract class AnimalFactory {

    public static Animal createAnimal(String animalType){

        if("pig".equals(animalType)){
            return new Pig();
        }else if("dog".equals(animalType)){
            return new Dog();
        }else{
            return null;
        }
    }
}

抽象产品角色:Animal

public abstract class Animal {

    public abstract void eat();
}

具体产品角色:

public class Dog extends Animal{
    @Override
    public void eat() {
        System.out.println("Dog is eating........");
    }
}
public class Pig extends Animal{

    @Override
    public void eat() {
        System.out.println("Pig is eating........");
    }
}

测试代码:

Animal animal = AnimalFactory.createAnimal("dog");
animal.eat();

animal = AnimalFactory.createAnimal("pig");
animal.eat();

结果:
这里写图片描述

缺陷:如果需要对产品扩展就需要重新更改工厂的代码,不符合开闭的原则
开闭原则:对修改关闭,对扩展开放

相关文章
最新文章
热点推荐