1.谈谈你对设计模式的理解
1.首先谈设计模式的作用:经验的传承,提高了软件复用的水平,最终达到提高软件开发效率
设计原则 | 简单说明 |
单一职责 | 一个类只负责一项职责 |
里氏替换原则 | 子类可以扩展父类的功能,但不能改变父类原有的功能 |
依赖倒置原则 | 要依赖于抽象,不要依赖于具体,核心思想是面向接口编程 |
接口隔离原则 | 建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少 |
迪米特法则 (最少知道原则) | 一个对象应该对其他对象保持最少的了解 |
开闭原则 | 对扩展开放,对修改关闭 |
(1)单一职责原则有什么好处
- 类的复杂性降低,实现什么职责都有清晰明确的定义;
- 读性提高,复杂性降低,那当然可读性提高了;
- 可维护性提高,可读性提高,那当然更容易维护了;
- 变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接 口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性、维护 性都有非常大的帮助。
(2)里氏替换原则好处
- 子类必须完全实现父类的方法
- 子类可以有自己的个性
- 覆盖或实现父类的方法时输入参数可以被放大
- 覆写或实现父类的方法时输出结果可以被缩小
(3)依赖倒置原则好处
- 依赖倒置原则可以降低类间的耦合性。
- 依赖倒置原则可以提高系统的稳定性。
- 依赖倒置原则可以减少并行开发引起的风险。
- 依赖倒置原则可以提高代码的可读性和可维护性。
(4)接口隔离原则好处
- 接口隔离原则是为了约束接口降低类对接口的依赖性
- 接口隔离提高了系统的内聚性,减少了对外交互,降低了系统的耦合性
- 能减少项目工程中的代码冗余。过大的大接口里面通常放置许多不用的方法,当实现这个接口的时候,被迫设计冗余的代码。
(5)迪米特原则好处
- 降低了类之间耦合度,提高了模块的相对独立性。
- 亲和度降低,提高了类的可复用率和系统的扩展性。
(6)开闭原则好处
- 使变化中的系统有一定的适应性和灵活性。通过扩展已有的软件系统,提供新的功能,满足新的需求。
- 使变化中的软件系统有一定的稳定性和延续性。已有的软件模块,特别是抽象层模块不能修改。
2.设计模式的分类
3.创建型模式:都是用来帮助我们创建对象的!
4.结构性模式:关注对象和类的组织
5.行为型模式:关注系统中对象之间的相互交换,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责,共有11中模式