<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] 提煉設計模式的幾個原則: 開閉原則:模塊應對擴展開放,而對修改關閉。 里氏代換原則:如果調用的是父類的話,那么換成子類也完全可以運行。 依賴倒轉原則:抽象不依賴細節,面向接口編程,傳遞參數盡量引用層次高的類。 接口隔離原則:每一個接口只負責一種角色。 合成/聚合復用原則:要盡量使用合成/聚合,不要濫用繼承。 [http://c.biancheng.net/view/1397.html](http://c.biancheng.net/view/1397.html) 設計模式分類 1、創建型模式: 單例模式、工廠模式(簡單工廠、工廠方法、抽象工廠)、創建者模式、原型模式。 2、結構型模式: 適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式。 3、行為型模式: 模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解釋器模式、狀態模式、策略模式、職責鏈模式、訪問者模式。 ## **設計模式快速記憶:** 口訣: 1.單原二廠建 2.橋幫主享外帶裝適 3.觀摩職命狀 4.劉備的爹在房中潔廁 1,創建型模式有五種:工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式---口訣:**原來的建設工人單獨抽獎** 解釋:原(原型模式)來的建(建造者模式)設工(工廠方法模式)人單(單例模式)獨抽(抽象方法模式)獎。 2,結構型模式有其中:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式---口訣:**帶上適當的裝備組合可以讓外國僑胞享受(游戲)** 解釋:帶(代理模式)上適(適配器模式)當的裝(裝飾模式)備組(組合模式)合可以讓外(外觀模式)國僑(橋接模式)胞享(享元模式)受(游戲) 3,行為型模式有十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式---口訣:**多次命令和責備中,車模見狀慌忙解開(衣服)** 解釋:多次(迭:多次的意思,迭代模式)命(命令模式)令和責(責任鏈模式)備(備忘錄模式)中(中介者模式),車(策略模式) 模(模板方法模式)見(觀察著模式)狀(狀態模式)慌(訪問者模式)解(解釋器模式)開(衣服)。 所以只要三句話,當你的腦海中經常有這三句話的時候,23中設計模式就過目不忘了,接下來的就是去實踐了吧。 4個建造工廠的工人單獨外出現出原形;外觀好看且裝飾美美的僑姐和她老公享元帶上適配的比基尼組合參加7點的車展;觀察到在多次的命令和責備中狀態不佳的車模拿著模板策略性的向11位訪問者解釋 ## **UML類圖** 免費Visual Paradigm UML工具: UML 中的類圖有以下幾種關系:依賴關系、關聯關系、聚合關系、組合關系、泛化關系和實現關系。其中泛化和實現的耦合度相等,它們是最強的。 ## **圖解:** +:公有(Public) -:私有(Private) #:受保護(Protected) ~:朋友(Friendly)php沒有java才有 ○:interface接口 ## **依賴關系:**\- - - - - - > >[danger] 另外的類以形參、局部變量、或者以靜態方法調用的方式存在于這個類里某個方法里 ## **關聯關系:** >[danger] 另外的類以該屬性的的方式存在于該類(或者互相以屬性的方式存在于彼此屬性里),注意方法形參有時也表示的是關聯關系(如析構函數)而不是依賴,需要對代碼進一步分析,首先判斷類之間是否是一種“關聯”關系,若不是 關聯關系分為一般關聯關系、聚合關系和組合關系 ### **雙向關聯關系**:---------或者<--------> ### **單項關聯關系**:-----> ### **聚合關系**:------◇ 聚合是整體和個體之間的關系,如:老師和學校,學校沒了老師還是老師可單獨出來,又例如,汽車類與引擎類、輪胎類,以及其它的零件類 契合壞了單獨的零件還存在。 與關聯關系一樣,聚合關系也是通過實例變量實現的。但是關聯關系所涉及的兩個類是處在同一層次上的,而在聚合關系中,兩個類是處在不平等層次上的,一個代表整體,另一個代表部分 ### **組合關系**:------◆ 比聚合更強烈的整體和個體之間的關系,例如:頭和嘴巴,頭沒了嘴巴也會沒 >[danger]以上關系的耦合度依次增強(暫時理解為當一個類發生變更時,對其他類造成的影響程度,影響越小則耦合度越弱,影響越大耦合度越強) ## **extends泛化關系(繼承關系):**-------? ## **implement實現關系:**\- - - - - - - - - - - - - -? ## **依賴和關聯的區別** >[info]關聯表示類之間的“持久”關系,這種關系一般表示一種重要的業務之間的關系,需要保存的,或者說需要“持久化”的,或者說需要保存到數據庫中的。比如學生管理系統中的Student類和Class(班級)類,一個Student對象屬于哪個Class是一個重要的業務關系,如果這種關系不保存,系統就無法管理。另外,依賴表示類之間的是一種“臨時、短暫”關系,這種關系是不需要保存的,比如Student類和StuEditScreen(學生登錄界面)類之間就是一種依賴關系,StuEditScreen類依賴Student類,依賴Student對象的信息來顯示編輯學生信息 關聯關系:關聯(Association)關系是對象之間的一種引用關系,何為引用?A類實例化的時候需要B類的對象引用或指針作為參數 依賴關系:依賴(Dependency)關系是一種使用關系,是**臨時性**的關聯且總是單向的,它是對象之間耦合度最弱的一種關聯方式 某個類以**成員變量**的形式出現在另一個類中,二者是關聯關系;某個類以**局部變量**的形式出現在另一個類中,二者是依賴關系。 聚合關系:弱關聯,整體和部分可以獨立存在 組合關系:強關聯,整體和部分不可分割,不能獨立存在。 ## **例子:** \- - - - - - >:依賴關系:對象之間耦合度最弱的一種關聯方式,是臨時性的關聯。在代碼中,某個類的方法通過**局部變量**、**方法的參數**或者對**靜態方法的調用**來訪問另一個類(被依賴類)中的某些方法來完成一些職責 **依賴可能的四種情況:** ``` //Person類call方法的參數類型是MobilePhone,這種情況成為耦合 class MobilePhone{ public function transfer(){ echo "語音傳送"; } } class Person{ $name=""; public function call(MobilePhone $mp){ $mp->transfer(); } } //Person類call方法的參數類型是MobilePhone的屬性,這種情況成為緊耦合 class MobilePhone{ public $num=15632663388; } class Person{ public $num=null; public function call($num){ $this->num=$num; } } //ClassA中某個方法的實現實例化ClassB //ClassA中某個方法的返回值的類型是ClassB; ``` 關聯關系:對象之間的一種引用關系 一般關聯:通常將一個類的對象作為另一個類的成員變量來實現關聯關系 ---------或者<-------->:雙向關聯 ----->:單項關聯: ------◇:聚合關系:是關聯關系的一種,是強關聯關系,是整體和部分之間的關系,是 has-a 的關系,菱形指向整體 聚合關系也是通過成員對象來實現的,其中成員對象是整體對象的一部分,但是成員對象可以脫離整體對象而獨立存在。例如,學校與老師的關系,學校包含老師,但如果學校停辦了,老師依然存在。 ------◆:組合關系:類之間的整體與部分的關系,但它是一種更強烈的聚合關系,是 cxmtains-a 關系,菱形指向整體 在組合關系中,整體對象可以控制部分對象的生命周期,一旦整體對象不存在,部分對象也將不存在,部分對象不能脫離整體對象而存在。例如,頭和嘴的關系,沒有了頭,嘴也就不存在了 -------?:泛化關系(繼承):是對象之間耦合度最大的一種關系,表示一般與特殊的關系,是父類與子類之間的關系,是一種繼承關系,是 is-a 的關系 \- - - - - - - - - - - - - -?:**implements實現關系**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看