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

设计模式遵循六大原则:

  • 单一职责:一个类和方法只做一件事。
  • 里氏替换:多态、子类可扩展父类。
  • 依赖倒置:细节依赖抽象,下层依赖上层。
  • 接口隔离:建立单一接口。
  • 迪米特原则:最少知道,降低耦合。
  • 开闭原则:抽象架构,扩展实现。

创建型模式

解决的问题

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

定义

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

主导思想
  1. 将系统使用的具体类封装起来。
  2. 隐藏这些具体类的实例创建和结合的方式。
分类
  • 对象创建模式:处理对象的创建,即将对象创建的一部分推迟到另一个对象中。
  • 类创建模式:处理类的创建,即将其对象的创建推迟到子类中。
应用场景

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

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

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

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

  • 一个系统需要其对象和产品的创建互相独立。
  • 一组相关的对象被设计为共同使用。
  • 隐藏一个类库的具体实现,仅暴漏其接口。
  • 创建独立复杂对象的不同表示。
  • 一个类希望它的子类实现它所创建的对象。
  • 类的实例化在运行时才指定。
  • 一个类只能有一个实例,而且这个实例能在任何时候访问到。
  • 实例应该能在不修改的情况下具有可创建型。
具体实例
  1. 工厂方法模式:允许一个类的实例化推迟到子类中进行,即在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。
  2. 抽象工厂模式:提供一个创建相关或依赖对象的接口,而无需指定对象的具体类。
  3. 生成器模式:将一个复杂对象的创建与其表示相分离,使同样的创建过程可以创建不同的表示,即允许分步骤创建复杂对象,能够使用相同的创建代码生成不同类型和行是的对象。
  4. 原型模式:用原型实例指定要创建的对象,通过复制原型创建新的对象,即能够复制已有对象,而又无需使代码依赖其所属的类。
  5. 单例模式:保证一个类只有一个实例,并提供对这个实例的全局访问方式。
参考链接
重学 Java 设计模式: https://segmentfault.com/a/11...
设计模式: https://refactoringguru.cn/de...

你可能感兴趣的:(设计模式)