设计:原则

上学时候老师一到考试总会划重点:“考试前一定要先把卷子从头到尾看一遍,先做简单的,由简入难”,当下我们在学习的时候也是相同的道理,从简单的开始。

在这里要纠正一下那些“由易入繁”的同学,直接学习设计模式是没有意义的,设计模式的初衷就是为了各种优化代码,流程是  问题->定位,汇总(原则)->设计模式,直接学习设计模式而不看原则,这就是捡了芝麻丢了西瓜,需要反向去领悟  “什么时候用什么设计模式”。

那么下面就来系统的认识下有哪些原则:

1》单一原则

你今天去上班,如果你把你妻子,儿子,女儿都带上了....

2》里氏替换原则

"任何基类出现的地方子类一定可以出现":你可以去男澡堂,因为你归类在 男 下面

3》依赖倒置原则

例如 : 面向过程开发 和 面向对象开发

提升可维护空间,如 回家 这一需求:

面向过程开发:下班,走3000米路,到某某小区,上楼回家

面向对象开发:

         下班,走3000米路,到某某小区,上楼回家

         下班,坐直升机飞机到某某小区,上楼回家

         下班,先与女朋友交流感情,带女朋友一起回家

          .....

         怎么回家,你可以随意想象

PS:理解这一点,你才算是真正在用面向对象做开发,不论的话你只是齿轮,别人动的时候你也会动

4》接口隔离原则

”客户端不应该依赖它不需要的接口 “

你今天去上班,如果你把你妻子,儿子,女儿都带上了....

”类间的依赖关系应该建立在最小的接口上 “

例子1: 你是公司的管理层  和 你是车间小组的组长,现在公司需要提拔一位车间小组组长作为 车间组长,公司的管理层  包括 车间组长,这时候如果你被称作第一种,那么这个甜头就可你没关系了

例子2:你在 阿里 上班,职位是扫地的,你过年回家只说你在 阿里 上班,别人都说你不错,然后别人托你关系想进 阿里,你怎么搞?

5》迪米特法则

”一个对象应当对其他对象有尽可能少的了解“:

例子1:警察、罪犯(你的朋友)、你

警察抓罪犯,你知道你朋友犯罪,你不上报会被定义为包庇罪。

例子2:需求(修改类A的...),类A,类B

此时如果类B包含类A的内容较少,那么类B只需要改动很少

6》开闭原则

”对于扩展是开放的,对于修改是关闭的“

在我们开发完所有功能并交付后,后期维护应当确保一点:在对以前代码不做改动的情况下添加新内容。

有改动就意味着测试,这就像你每次都从 1+1 开始,前期你一天可以学习到2年级的内容,甚至一天能学习到6年级内容,但你永远也不能一天学习到初中,高中,大学的内容

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章