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

编程是一门艺术,大批量的改动显然是非常丑陋的做法,用心的琢磨写的代码让它变的更美观。
设计模式2-创建型设计模式-工厂方法

1.简单工厂设计模式

简单工厂模式(Simple Factory)能够根据提供给它的数据,返回一个类的实例。

在开发过程中,完成一个逻辑不可避免的会使用到其他的类,当这个类比较简单的时候,我们可以直接new来得到对象,但是如果比较负责的时候,可能就需要一个工厂来管理这个对象的初始化,尤其是存在变种的时候。

2.一个简单工厂的实例
public class SimpleFactory {
    public static final int TYPE_APPLE = 1; 
    public static final int TYPE_ORANGE = 2; 
    public static final int TYPE_BANANA = 3; 

    public static Fruit getFruit(int type){
        if(TYPE_APPLE == type){
            return new Apple();
        } else if(TYPE_ORANGE == type){
           return new Orange("lpf",80);
        } else if(TYPE_BANANA == type){
            return new Banana();
        }
        return null;
    }
  }

比如这个简单工厂就可以创建多个水果的对象,使用者只需要传递类型就好。由于需要传递类型,也可以简单做一下升级

public static Fruit getFruitApple(){
    return new Apple();
}

public static Fruit getFruitOrange(){
    return new Orange("Orange",80);
}

public static Fruit getFruitBanana(){
    return new Banana();
}

这样做的话就不需要传递类型了,想使用那个类型的对象,直接调用相应的方法就可以。

3.简单工厂设计模式存在的问题
  • 符合单一职责的原则:一个类管理了多个水果。
  • 不符合开闭原则:扩展类别的时候需要修改已有的代码。

这些问题可以通过工厂方法设计模式 来解决

总结一下:

简单工程就是一个对象的管理者,能根据具体的客户的需要创建不同的对象,使用者不需要关心对象的具体创建过程。但是,简单工厂设计模式存在一些问题,如果逻辑简单的情况下可以忽略,但是需求比较复杂,就需要避免直接这样使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值