1.2.1 创建型设计模式

简介: 1.2.1 创建型设计模式

设计模式是什么?

设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案。是一种解决问题的固定套路。

设计模式是怎么来的?

满足设计原则后,然后慢慢迭代出来的

设计模式解决了什么问题?

前提:具体需求既有稳定点,又有变化点。

期望修改少量的代码,就可以适应需求的变化

比喻:整洁的房间,好动猫,怎么保证房间的整洁?把猫关在笼子里

设计模式基础:

面向对象的思想:

封装:隐藏实现细节,实现模块化

继承:无需修改原有类的情况下通过继承实现对功能的扩展

多态:静态多态:函数重载

动态多态:继承中虚函数重写

设计原则:

1.依赖倒置:

高层模块不应该依赖低层模块,两者都应该依赖抽象

抽象不应该依赖具体实现,具体实现应该依赖于抽象

2.开闭原则:

对扩展开放,对修改关闭

封装、多态

3.面向接口:

封装

4.封装变化点:封装、多态

5.单一职责:封装

6.里氏替换:多态

7.接口隔离:

8.组合由于继承

9.最小知道原则:封装

模板方法

观察者模式:定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。

稳定点:一对多的依赖关系,一变化多跟着变化

变化点:多增加,多减少

策略模式:定义一系列算法,把他们一个个封装起来,并且使他们可相互替换。该模式使得算法可独立于使用它的客户程序而变化。

稳定点:抽象去解决

变化点:扩展(继承和组合)去解决它

相关文章
|
设计模式
**工厂模式与抽象工厂模式**都是创建型设计模式,用于封装对象创建,减少耦合
【6月更文挑战第23天】**工厂模式与抽象工厂模式**都是创建型设计模式,用于封装对象创建,减少耦合。工厂模式专注于单个对象,通过具体工厂创建具体产品,适用于简单对象创建;抽象工厂则关注一系列相关产品,提供创建一族对象的接口,适用于处理多个不兼容产品族。选择模式基于问题域的复杂性,单个产品需求时用工厂模式,多产品族时用抽象工厂模式。
74 5
|
设计模式 搜索推荐 数据库连接
第二篇 创建型设计模式 - 灵活、解耦的创建机制
第二篇 创建型设计模式 - 灵活、解耦的创建机制
145 0
|
设计模式 Oracle Java
工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。
【6月更文挑战第20天】工厂模式简化对象创建,根据参数或条件生成MySQL或Oracle数据库连接。`DatabaseConnectionFactory`作为工厂,动态返回具体连接类型。装饰器模式则用于运行时动态增加对象功能,如`LoggingDecorator`为`Runnable`对象添加日志记录,保持代码整洁。在`Main`类中展示了如何使用这两种模式。
93 6
|
设计模式 测试技术 Go
[设计模式 Go实现] 创建型~ 原型模式
[设计模式 Go实现] 创建型~ 原型模式
|
设计模式 测试技术 Go
[设计模式 Go实现] 创建型~工厂方法模式
[设计模式 Go实现] 创建型~工厂方法模式
|
设计模式 测试技术 Go
[设计模式 Go实现] 创建型~建造者模式
[设计模式 Go实现] 创建型~建造者模式
|
设计模式
创建型设计模式之建造者模式
创建型设计模式之建造者模式
|
设计模式 JavaScript 前端开发
[设计模式Java实现附plantuml源码~创建型] 复杂对象的组装与创建——建造者模式
[设计模式Java实现附plantuml源码~创建型] 复杂对象的组装与创建——建造者模式
156 1
|
设计模式 缓存 架构师
创建型设计模式的比较与决策
本文深入探讨六种创建型设计模式:单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。通过概述各模式的核心概念、应用场景和关键要素,帮助读者理解并掌握这些模式的核心思想。文章还通过比较表和决策流程图,直观地展示了各模式之间的差异和选择依据,为读者提供了实用的设计模式选择指南。 本文的特色在于结合了理论与实践,每个模式都配有详细的代码示例和结构图,帮助读者更好地理解和应用这些模式。 总之,本文旨在为读者提供一篇全面、深入且实用的创建型设计模式指南,帮助读者在实际工作中灵活运用这些模式...
305 0
创建型设计模式的比较与决策
|
设计模式 Java Go
[设计模式Java实现附plantuml源码~创建型] 对象的克隆~原型模式
[设计模式Java实现附plantuml源码~创建型] 对象的克隆~原型模式