Your Life, Your Lab

Accept who you are and own your life.

適配器模式 | Adapter Pattern

#Design Pattern #鐵人賽
適配器模式如同出國玩時,一定會有使用電器的需求。但每個國家的插座及電壓都不一樣,這時就會拿出事先準備好的轉接頭,藉由轉接頭將插座與電器插頭做連接。適配器模式的目的在於將一個類別的介面轉換成客戶希望的另外一個介面,Adapter使得原本由於介面相容而不能一起工作的那些類別可以一起工作。
鐵人賽

原型模式 | Prototype Pattern

#Design Pattern #鐵人賽
建立原型物件,透過複製的方式建立大量物件,而非傳統的建立方式。這為原型模式主張的目標,不但能提升效能,也隱藏了創建新物件的復雜性。
鐵人賽

生成器模式 | Builder Pattern

#Design Pattern #鐵人賽
生成器模式就是將元件做分離,依照需求一一組裝起來,建立不同需求的物件。如同不同的人組一台電腦需要各種不同的零件一樣。
鐵人賽

抽象工廠模式 | Abstract Factory Pattern

#Design Pattern #鐵人賽
抽象工廠主要是由繼承來的次類別來決定要產生哪種實體產品,其主要目的是將客戶從實體型態中鬆綁。
鐵人賽

工廠模式 | Factory Pattern

#Design Pattern #鐵人賽
簡單工廠模式:藉由定義一個class來負責建立其他class的instance,被建立的instance通常都具有共同的super class;工廠方法模式:定義了一個建立物件的insterface,由子類別決定實體化的類別為何者。而兩者之間的差異在...
鐵人賽

單例模式 | Singleton Pattern

#Design Pattern #鐵人賽
Singleton = one instance ONLY。單例模式希望執行一個且唯一一個Singleton物件且Singleton物件可以全局使用。
鐵人賽

迪米特法則 | Law of Demeter

#Design Pattern #鐵人賽
迪米特法則,又稱最少知識原則。其定義為各單元對其他單元所知應當有限:只瞭解與目前單元最相關之單元。意思就是,只跟你熟的朋友聊天,不要跟陌生人講話。
鐵人賽

合成/聚合複用原則 | Composite/Aggregate Reuse Principle

#Design Pattern #鐵人賽
合成/聚合複用原則的在於當要重複使用套件時,應該先考慮使用組合/聚合的方式,其次才是繼承。而如果要使用繼承的話,則須符合里氏替換原則(LSP)。在這之前,要先了解什麼是合成?什麼是聚合?他們又與繼承差在哪?
鐵人賽

依賴反轉原則 | Dependency Inversion Principle

#Design Pattern #鐵人賽
高層模組不應該依賴低層模組,是兩者都應該依賴抽象;而抽相不應該依賴細節,應該是細節應該依賴於抽象,這是依賴反轉原則的目的。他不但可以減低類別間的耦合,也提高了系統的可讀性及可維護性。
鐵人賽

介面隔離原則 | Interface Segregation Principle

#Design Pattern #鐵人賽
介面隔離原則目的在於客戶不應該被強迫依賴他們不使用的方法。如同一個公司有一般工程師及資深工程師。資深工程師可能還要囊括一些報告的工作,但一般工程師不用,這時工程師的技能分類就很重要了。
鐵人賽

里氏替換原則 | Liskov Substitution Principle

#Design Pattern #鐵人賽
里氏替換原則主要在於子類別可以擴充套件父類別的功能,但不改變父類別原有的功能。就像老鷹跟企鵝都是鳥,老鷹會飛但企鵝不會。但企鵝不能去更改鳥類內的方法,只好經由其他設計達成目的。
鐵人賽

開閉原則 | Open/Closed Principle

#Design Pattern #鐵人賽
擴充系統時,應該由新增程式碼代替修改程式碼。如同電鑽,可以換各種不同的鑽頭,而電鑽本身並不需要被改造,就符合開閉原則。
鐵人賽

單一職責原則 | Single Responsibility Principle

#Design Pattern #鐵人賽
一個類別只能有一個改變的原因。你做你該做的事,我做我該做的事。你我互不干擾,這就是單一職責原則。
鐵人賽

Design Pattern的類型與原則

#Design Pattern #鐵人賽
使用Design Pattern要先了解他的原則及分類,才能在實作中找到匹配的Pattern。
鐵人賽