iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 17
0
Software Development

Kotlin 2018連續開發30天系列 第 17

Kotlin 2018連續開發30天 設計模式 Android 原始碼解析

  • 分享至 

  • xImage
  •  

今天有點事情沒辦法完成前兩天未完成的試題 今天先寫點別的

設計出可再利用的物件導向模式
http://www.runoob.com/design-pattern/design-pattern-tutorial.html

六大原則

  1. 單一職責原則SRP(Single Responsibilities Principle)
    就單一類別而言 應該只有一個引起他變化的原因
  2. 開閉原則OCP(Open Close Principle)
    軟體中的物件(類別,模組,函數等)應該對於擴充是開放的,但是對於修該是封閉的
  3. 里氏取代原則LSP(Liskov Substitution Principle)
    所有參照基底類別的地方必須能透明地使用其子類別的物件 (能使用父類別的地方 其父類別的子類別都要能被使用 反之 能使用子類別的地方父類別不一定能使用)
  4. 依賴倒置原則DIP(Dependence Inversion Principle)
    模組間的依賴透過抽象發生 實做類別之間不發生直接的依賴關係 其依賴關係是透過介面或抽象類別產生的
  5. 介面隔離原則ISP(Interface Segregation Principle)
    類別間的依賴灣係應該建立在最小的介面上
  6. 迪米特原則DP(Demeter Principle)
    一個物件應該對其他物件有最少的了解
    1. 合成覆用原則(Composite Reuse Principle)補充
      儘量使用合成/聚合的方式 而不是使用繼承

三大類型

  1. 生成類型(Creational Patterns)
  2. 結構類型(Structural Patterns)
  3. 行為類型(Behavioral Patterns)
    1. J2EE 模式(J2EE Patterns)補充

設計模式框架包含

  1. MVC
  2. MVP
  3. MVVM

設計模式23種

  1. 生成類型(Creational Patterns)
    (1)單例模式(Singleton Pattern)
    (2)工廠方法模式(Factory Pattern)
    (3)抽象工廠模式(Abstract Factory Pattern)
    (4)建造者模式(Builder Pattern)
    (5)原型模式(Prototype Pattern)

  2. 結構類型(Structural Patterns)
    (1)配接器模式(Adapter Pattern)
    (2)橋接模式(Bridge Pattern)
    (3)組合模式(Composite Pattern)
    (4)裝飾模式(Decorator Pattern)
    (5)外觀模式(Facade Pattern)
    (6)輕量模式(Flyweight Pattern)
    (7)代理模式(Proxy Pattern)

  3. 行為類型(Behavioral Patterns)
    (1)責任鍊模式(Chain of Responsibility Pattern)
    (2)命令模式(Command Pattern)
    (3)直譯器模式(Interpreter Pattern)
    (4)迭代器模式(Iterator Pattern)
    (5)中介者模式(Mediator Pattern)
    (6)備忘錄模式(Memento Pattern)
    (7)觀察者模式(Observer Pattern)
    (8)狀態模式(State Pattern)
    (9)策略模式(Strategy Pattern)
    (10)範本方法模式(Template Pattern)
    (11)訪問者模式(Visitor Pattern)

  4. J2EE 模式
    (1)過濾器模式(Filter Pattern)
    (2)空對象模式(Null Object Pattern)
    (3)業務代表模式(Business Delegate Pattern)
    (4)組合實體模式(Composite Entity Pattern)
    (5)數據訪問對象模式(Data Access Object Pattern)
    (6)前端控制器模式(Front Controller Pattern)
    (7)攔截過濾器模式(Intercepting Filter Pattern)
    (8)服務定位器模式(Service Locator Pattern)
    (9)傳輸對象模式(Transfer Object Pattern)


上一篇
# Kotlin 2018連續開發30天 day 14 串接ptx api 中集
下一篇
Kotlin 2018連續開發30天 day 16 圓型進度條
系列文
Kotlin 2018連續開發30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言