基础学习-设计模式-创建型

工厂模式

提供了一种创建对象的方法,隐藏创建过程,使用同一个接口指向新对象

需要一辆汽车,可以直接在工厂提货,不需要管是怎么创建的,以及汽车里面的具体实现

例子:汽车工厂,专门生产品牌汽车,传入宝马,生产宝马汽车,传入奔驰,生产奔驰汽车。

继承这个工厂的生成汽车接口,宝马工厂和奔驰工厂继承,分别生产对应品牌汽车,不再由参数决定

优点:创建对象只要知道名称就可以,拓展性高,想增加产品只需要拓展一个工厂类,隐藏具体实现,调用者只关心产品的接口

缺点:每次增加产品,都需要增加一个具体类和对象实现工厂,增加了系统的复杂度

抽象工厂模式

工厂不仅生产汽车,还生产飞机

宝马品牌继承,可以生产宝马汽车和宝马飞机

奔驰品牌继承,可以生产奔驰汽车和奔驰飞机

单例模式

保证一个类只有一个实例,并提供全局访问点

分为懒汉式和饿汉式,懒汉式:用到的时候创建,饿汉式:程序开始就创建,常用懒汉式

例子:一个班只有一个班主任,产品的唯一序列号

优点:减少内存开销,避免资源多重占用

缺点:没有接口不能继承 与单一原则冲突

原型模式

复制现有的实例生成新实例,创建当前对象的克隆,创建对象的代价比较大时使用

分为浅克隆和深克隆,浅克隆:基本数据类型和变量会新创建,引用指向不变,深克隆:指向也会新创建

例子:每周写的工作周报,大同小异

优点:性能提高,逃避构造函数的约束

缺点:需要对类的功能全局考虑

建造者模式

使用多个简单的对象构建一个复杂的对象,将一个复杂的构建与其表示分离

例子:肯德基有薯条、汉堡、可乐、炸鸡是不变的,组合方式是变的,去肯德基点餐属于建造订单过程,点餐顺序无关,点什么没有要求,可以单点,可以点套餐,最后一定要确认订单。

优点:建造者独立,易拓展,便于控制细节风险

缺点:产品必须共同点,范围有限,内部变化复杂,会有很多建造类

与工厂模式区别更加关注与零件装配的顺序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值