简述设计模式及设计原则
来源:互联网 发布:淘宝版网页版登录 编辑:程序博客网 时间:2024/06/05 17:05
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
优点:
1. 可重用代码
2. 代码易理解、软件易扩展
3. 代码易维护
软件之美:
软件的美在于它的功能、内部结构、被创造的方式。
对于用户来说,通过一个直观和简单的界面呈现的正确功能的程序,是美的;
对于设计者来说,软件内部结构被简单直观的方式分割,并减少内部耦合,是美的;
对于开发者来说,做成一个无缺陷的代码项目,是美的。
软件设计的七宗罪:
僵化(Rigidity):难改变;
脆弱(Fragility):易崩溃;
固化(Immobility):难重用;
黏滞(Viscosity):难做正确的事;
非必要行复杂性(NeedlessComplexity):过度设计;
非必要重复(NeedlessRepetition):易出错
无设计
六大设计原则:
SRP(SingleResponsibility Principle)单一职责原则:一个类只封装一种变化。
遵循单一职责原的优点有:
1.可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
2.提高类的可读性,提高系统的可维护性;
3.变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
OCP(Open-Closed Principle)开放-封闭原则:对扩展开放,对修改封闭
谨记:“Open for extension, Closed for modification”
LSP(Liskov Substitution principle):子类可以扩展父类的功能,但不能改变父类原有的功能。
定义:若对每个类型S的对象 o1,都存在一个类型为 T 的对象o2,使得在所有针对 T编写的程序 P中,用o1 替换 o2 后,程序 P 的功能不变,那么S 是T的子类型。
DIP(DependenceInversion Principle)依赖倒转原则:高层模块不依赖于底层模块,二者都应该依赖于抽象,抽象不应该依赖于细节;细节应该依赖于抽象。
ISP(InterfaceSegregation Principle)接口隔离原则:一个类对另一个类的依赖应该建立在最小的接口上。
LOD(Law of Demeter)迪米特法则:一个对象应该对其他对象保持最少的了解。
尽量降低类与类之间的耦合
- 简述设计模式及设计原则
- 设计模式六大原则简述
- 简述GRASP设计原则
- 简述GRASP设计原则
- 简述GRASP设计原则
- 简述GRASP设计原则
- 简述GRASP设计原则
- Java 设计原则简述
- 设计原则简述
- 设计模式_面向对象设计原则简述
- 面向对象设计原则及设计模式
- 设计模式结构图及设计原则
- 设计模式之设计模式及设计原则
- 设计模式:oo基础、原则及模式
- [设计模式] 设计原则
- 设计模式 - 设计原则
- 设计模式 - 设计原则
- 设计模式设计原则
- PCB布线技术
- OJ C
- 判断两个矩形相交以及求出相交的区域
- zookeeper应用开发
- Spark1.0.x入门指南(spark on yarn, standalone)
- 简述设计模式及设计原则
- 精通安卓性能优化-第五章(二)
- swf破解扫盲教程-内存抓取法破解swf加壳
- C#反射之Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom方法介绍
- FZU 2147 A-B Game
- 验证java 递增不是原子操作
- 题目1518:反转链表
- OJ D
- 2014MadCon厦门分享会-笔记(下)