首先祝大家節日快樂!!!
額,不知道你們剁手沒,小夢是沒有!整整已經錯過了第九個年頭!
小夥伴是不是有一種感覺,PHP入門的時候簡直愛不釋手,總是把 ”PHP是世界上最好的語言“ 挂在嘴邊上,覺得他簡單,快速完成項目!
然兒,終于有一天,你開發的項目過于龐大的時候,突然發現:我寫的代碼好亂,擴充性好低,可維護性好差。。。。。。。
然後你就下定決心要重構你的項目?想來想去,當然是面向對象程式設計了,然後加上各種設計模式!你就開始幹了!!!
下面就給大家講一下面向對象的設計原則,當然面向對象的好處以及如何分析設計我就不告訴你們了,如果想知道的可以連續我哦!本人QQ:476319748 (備注面向對象設計)
面向對象程式設計主要有一下幾種基本原則
1. 單一職責:一個類,隻需做好一件事情。不要使用一個類來完成很複雜的功能,而是拆分設計成更小更具體的類。
那有的小夥伴又要問了,為什麼這樣做?對對,倒數第二個同學問的好,下面我就給大家說一下為什麼:首先呢,就比如前後端分離,為什麼前端主做頁面展示,渲染效果,後端做業務邏輯,道理是一樣的,專精一樣,類也是一樣,專職一件事,高效,而且呢維護性已經擴充性很高,耦合度很低,修改一個不會影響其他人
2. 開放封閉原則:一個類,應該可以擴充,而不可修改的。一個類在實作之後,應該是對擴充開放,對修是改封閉的,不應該使用修改來增加功能,而是通過擴充來增加功能。
這個你還要問為什麼?那我就不告訴你了!!!
3. 依賴倒置:一個類,不應該強制依賴另一個類。每個類對另外一個類都是可以替換的。如:有A、B兩個類,A需要依賴B類,不應該在A類中直接調用B類,而是要使用依賴注入的方式,通過使用諸如,将A類依賴的B類的對象注入給A類,B類對于A類來說就是可以替換的。如果C類實作了和B類一樣的接口,那對于A類,B和C也是可以随意替換的。
這個那個同學不用蠢蠢欲動想知道為什麼了,我來告訴你吧:這個是降低耦合度!什麼?你不知道耦合度是什麼了,那麼請你出去,這裡不适合你!
4. 配置化: 盡可能的使用配置,而不是使用寫死。像類的關系的定義,也應該是可以配置的。
這點呢和你為什麼想做面向對象程式設計是一個道理!
5. 面向接口程式設計,而不是面向實作程式設計:隻需要關心接口,不需要關心實作。所有的代碼,它隻需要關心某一個類實作了哪些接口,而不需要關心這個類的具體實作。