设计模式基础

一 目标

设计模式主要目标是:可复用,

对于一个好的程序员来说需要懂得如何,向上抽象思维(面向对象,组件封装,设计模式,架构模式),向下理解底层思维(语言构造,编译转换,内存模型,运行时机制)。

而设计模式主要偏向于如何对抽象思维的理解。因为底层的变化不大,而软件最复杂的根本原因其实就是变化。

向下:三大面向对象机制

封装: 隐藏内部实现

继承:复用现有代码

多态:改写对象行为

**向上:**深刻把握面向对象机制所带来的抽象意义,理解如和通过这些机制来表达现实世界,掌握什么是“好的面向对象设计”。

软件设计复杂的根本原因: 变化 (客户需求 技术平台 开发团队 市场环境 的变化)

如何解决复杂性:

分解: 分而治之 将复杂问题分解为多个简单问题

抽象: 更高层次的来讲,由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛华和理想化了的对象模型。 所有设计模式都是围绕抽象来进行各种各样的变化。

二.原则

1.1 单一职责原则:

每个类的职责都应该简单,而不应该很复杂,不要有万能类,万能函数这种设计思想.

1.2 开放封闭原则

对自己封闭: 即不可以修改,但对扩展开放,核心就是多态.

已经封装好的类不再进行修改,而是进行扩展新的类,所以在封装旧的类时,就可以预留一些接口.

1.3 依赖倒置原则

在设计模式中我们一般所说的抽象都是带虚函数的父类,但是这个父类中的虚函数不一定是个纯虚函数,也就意味着不一定是一个抽象类,但是在描述的时候说是一个抽象类.从概念上来讲这个说法是错误的,但是逻辑上能够理解即可.

1.3.1 高层模块不应该依赖底层模块,两个都应该依赖抽象.

高层模块可以理解为写的程序,底层模块可以理解为调用的一些API函数,依赖转换原则是不能直接调用的,而是应该在高层模块和底层模块中间再加一层抽象层.使用时应该是由高层模块调用抽象层,抽象层根据子类的具体类型调用对应的API函数.

1.3.2 抽象不应该依赖细节,细节应该依赖抽象

细节依赖抽象: 细节是通过多态在子类重写父类虚函数的时候实现的.

里氏代换原则:子类类型必须能够替换掉他们的父类类型.

里氏代换原则第一个条件就是继承,其次还要求子类继承的所有父类的属性和方法对于子类来说都是合理的.

如果要满足1.3.2原则 就必须满足里氏代换原则

二 设计模式的分类

创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计模式基础教程.pdf》是一本介绍设计模式的教程,旨在帮助读者理解和应用各种常用的设计模式设计模式是指在面向对象软件开发中,经过反复的实践和总结,得到的可以解决特定问题的一种经验性的解决方案。 教程首先介绍了设计模式的基本概念和作用,使读者了解到设计模式在软件开发中的重要性。然后详细介绍了23种常用的设计模式,包括创建型模式、结构型模式和行为型模式。每一种设计模式都通过实际的例子进行讲解,帮助读者更好地理解其原理和运用方法。 在教程中,还对每一种设计模式的优缺点进行了详细说明,帮助读者在实际开发中选择合适的设计模式。同时,还讨论了设计模式的适用场景和注意事项,帮助读者避免在应用设计模式时可能遇到的问题。 教程的最后一部分是设计模式的实践案例,通过实际的项目示例,展示了如何使用设计模式解决实际的软件开发问题。这些案例包含了各种常见的应用场景,例如单例模式、观察者模式等等,帮助读者更好地理解设计模式的实际应用。 总之,《设计模式基础教程.pdf》通过简单明了的语言和实际案例的讲解,帮助读者全面了解和掌握设计模式的概念、原理和应用。无论是初学者还是有一定经验的开发者,都可以从这本教程中获得实用的知识,提高软件开发的质量和效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值