1、为什么学习七大设计原则
复制代码
1
2
3
4对于个人而言:无外乎使自己的代码高内聚低耦合、冗余低、可复用,开发效率高,别人用半个小时写完的东西, 你十分钟就搞定。(升职加薪) 对于公司架构而言:缩短开发周期,可维护性强,可扩展性强。(概括一句话就是使用最少的钱,得到最优质的产品。)
提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,从而提高软件开发效率、节约软件开发成本和维护成本。
-----------引用于 《c语言中文网-24种设计模式》
2、软件七大设计原则简介
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32开闭原则: 定义:当需求改变时,对原有代码扩展开放,对原有代码修改关闭 个人理解:目前已有普通同学类 ,但需要新建班长,班长除了具有普通同学的功能外还具有点名功能,建立班长不能 直接在普通同学里添加点名功能,因为普通同学不具有点名功能,而是需要新建一个班长类继承于普通同学类, 并新增点名功能。 依赖倒置原则 定义:底层模块依赖高层模块,实现类依赖于抽象类或接口 个人理解:具体的类依赖于抽象的类,比如 鸟类 继承 飞禽类,飞禽类 实现动物接口,不能颠倒过来。 单一职责原则: 定义:单一职责原则规定一个类应该有且仅有一个引起它变化的原因 个人理解 : 大学中 专业教师只负责教学生专业知识,辅导教师只负责学生日常生活管理,不能用一个教师类实现 教学生专业知识 和 学生日常管理 两个功能 接口隔离原则: 定义:接口只保留其实现类所需要的功能,不要强迫其实现类去实现他用不到的功能 个人理解:接口隔离原则与单一职责相似,区别于接口隔离原则应用与接口不同功能分离,而单一职责原则应用 于实现类不同功能分离 里氏替换原则: 定义:当子类继承父类时,不能修改父类方法,如有需求应该新增对应方法 个人理解:既然子类继承了父类,那么子类便拥有其父类的所有功能,子类的对象能够代替其父类的对象完成 同样的功能。 迪米特法则: 定义:只与你的直接朋友交谈,不跟“陌生人”说话 个人理解:例如 a 和 b 是朋友,b 和 c是朋友, b 和 d 是朋友,c 拥有《spring5》,d 拥有《netty》。a想看 《spring5》则只需要向b借就可以了,b去和c借书,而不需要 a 添加 c 去向 c 借书(人家也不认识你呀) ,同理 a 想看《netty》 也只需向 b 借就可以了。 合成复用原则: 定义:求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。 个人理解:已有一个 手机类 和一个颜色类,a 想要 红色的手机,, c想要一个白色的手机,d想要一个紫色手机, 我们只需要给每个手机赋予对应颜色就行了而不需要新建红色的手机类,白色的手机类。。
3、应用注意事项
复制代码
1
2
3
4日常编码中,设计原则应适度引用,如果刻意使用设计原则,可能会适得其反。例如 使用开闭原则,如果功能 一直增加那么便一直增加这个类的子类,这样便造成了代码臃肿的状况。
最后
以上就是贪玩绿草最近收集整理的关于菜鸟的架构学习之路-七大软件设计原则的全部内容,更多相关菜鸟内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复