您的位置:首页 > 其它

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

2017-03-02 16:20 316 查看
简单工厂模式:静态工厂方法模式

由一个工厂对象决定创建那一种产品类的实例,根据自变量的不同返回不同的产品类

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

简单工厂模式参与角色:

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

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

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

工厂类角色: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();


结果:



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

开闭原则:对修改关闭,对扩展开放
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐