初学设计模式(一)创建者模式

设计模式遵循六大原则:

  • 单一职责:一个类和方法只做一件事。

  • 里氏替换:多态、子类可扩展父类。

  • 依赖倒置:细节依赖抽象,下层依赖上层。

  • 接口隔离:建立单一接口。

  • 迪米特原则:最少知道,降低耦合。

  • 开闭原则:抽象架构,扩展实现。

创建型模式
解决的问题

基本的对象创建方式可能会导致设计上存在问题,或增加设计的复杂度。创建型模式通过以某种方式控制对象的创建来解决问题。

定义

创建型模式是处理对象创建的设计模式,试图根据实际情况使用合适的方式来创建对象。创建型模式旨在将系统与其对象创建、结合、表示的方式分离,从而让对象创建在类型、主体、方式、时间等方面提高了系统的灵活性。

主导思想
  1. 将系统使用的具体类封装起来。

  2. 隐藏这些具体类的实例创建和结合的方式。

分类
  • 对象创建模式: 处理对象的创建,即将对象创建的一部分推迟到另一个对象中。

  • 类创建模式: 处理类的创建,即将其对象的创建推迟到子类中。

应用场景

软件工程往往依赖于对象的组合,而不是类的继承,强调将硬编码的行为转变为定义以组基本行为来组合成复杂的行为。

硬编码缺点: 硬编码的行为不灵活,一旦发生设计的变更,往往需要重写或重新实现才能完成。其次,硬编码重用性不高,无法对错误进行跟踪。

基于以上问题,创建型模式应运而生,创建者模式使设计变得更加灵活,提供不同的方式,从代码中移除了对需要实例化的具体类的引用,增强了对象与类之间的独立思想。

在以下场景中,往往适用创建型模式:

  • 一个系统需要其对象和产品的创建互相独立。

  • 一组相关的对象被设计为共同使用。

  • 隐藏一个类库的具体实现,仅暴漏其接口。

  • 创建独立复杂对象的不同表示。

  • 一个类希望它的子类实现它所创建的对象。

  • 类的实例化在运行时才指定。

  • 一个类只能有一个实例,而且这个实例能在任何时候访问到。

  • 实例应该能在不修改的情况下具有可创建型。

具体实例
  1. 工厂方法模式: 允许一个类的实例化推迟到子类中进行,即在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。

  2. 抽象工厂模式: 提供一个创建相关或依赖对象的接口,而无需指定对象的具体类。

  3. 生成器模式: 将一个复杂对象的创建与其表示相分离,使同样的创建过程可以创建不同的表示,即允许分步骤创建复杂对象,能够使用相同的创建代码生成不同类型和行是的对象。

  4. 原型模式: 用原型实例指定要创建的对象,通过复制原型创建新的对象,即能够复制已有对象,而又无需使代码依赖其所属的类。

  5. 单例模式: 保证一个类只有一个实例,并提供对这个实例的全局访问方式。

参考链接
重学 Java 设计模式:https://blog.youkuaiyun.com/generalfu/article/details/107297501
深入设计模式:https://refactoringguru.cn/design-patterns/creational-patterns

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值