作业二 读书笔记----软件设计原则、设计模式
| 这个作业属于哪个课程 | 班级的链接 |
|---|---|
| 这个作业要求在哪里 | 作业二 |
| 这个作业的目标 | 熟悉软件设计原则和设计模式 |
参考书籍:郑阿奇《软件秘笈:设计模式那点事》
设计原则
-
单一职责原则(SRP: Single responsibility principle)
- SRP要求每个模块职责单一
- 一个类/接口/方法只负责一项职责
- 优点:降低类的复杂度、提高类的可读性,提高系统的可维护性、降低变更引起的风险
-
开放封闭原则(OCP: Open Closed Principle)
- 软件实体应该对扩展开放,对修改关闭
- 用抽象构建框架,用实现扩展细节
- 优点:提高软件系统的可复用性和可维护性
-
里氏替换原则 ( LSP: Liskov Substitution Principle)
- 程序中的父类型都应该可以正确地被子类型替换
- 子类可以扩展父类的功能,但是不能改变父类原有的功能。也就是说,在子类继承父类的时候,除了添加新的方法完成新增功能之外,尽量不要重写父类的方法
- 子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法
- 子类中可以增加自己特有的方法
- 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更加宽松
-
接口隔离原则( ISP: Interface Segregation Principle)
- 多个特定客户端接口要好于一个宽泛用途的接口
- 一个类对一个类的依赖应该建立在最小的接口上
- 建立单一接口,不要建立庞大臃肿的接口
- 尽量细化接口,接口中的方法尽量少
- 注意适度原则,一定要适度
- 优点:符合我们常说的高内聚低耦合的设计思想,从而使得类具有很好的可读性、可扩展性和可维护性
-
依赖倒置原则( DIP: Dependence Inversion Principle)
- 模块之间交互应该依赖抽象,而非实现
- 抽象不应该依赖细节;细节应该依赖抽象
- 针对接口编程,不要针对实现编程
- 优点:可以减少类间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险
-
迪米特原则(Law of Demeter)
- 一个对象应该对其他对象保持最少的了解,又叫最少知道原则
- 尽量降低类与类之间的耦合
- 优点:降低类之间的耦合
设计模式
什么是软件设计模式?
- 设计模式(Design Pattern)就是一套被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。使用设计模式的目的是为了提高代码的可重用性,让代码更容易被他人理解,使系统质量更加有保证、系统更加可靠。
设计模式分为三个类别,24种方法
- 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
- 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
- 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
详细方法
-
创建型模式
![]()
-
结构型模式
![]()
-
行为型模式
![]()
心得体会
- 我们为什么要学习设计模式呢?总之是为了获得可以复用和容易扩展的解决方案,建立通用术语以方便团队内的沟通交流,另外,模式能让你以更高的层次或者说视角去观察问题,这样的视角将你从过早处理细节的泥潭中解放出来。
- 设计模式更多的是提供一种问题的解决方案,一种思想。为我们解决软件问题提供一个模板,让我们能够更好地实现软件的功能。
相关截图




浙公网安备 33010602011771号