可擴展設計落地

系統擴展的幾種形式是什麼?

www.cnblogs.com/Mainz/archi…html

1)直接修改代碼。設計模式

2)直接修改代碼,但只侷限在一個類或方法中。架構

3)利用繼承,編寫子類繼承之後的類,在子類裏添加新的業務邏輯。框架

4)運行時對象裝配。 將類的實例化邏輯移到運行時,經過反射,來進行裝配。Spring目前作的主要就是這些事情。到這個時候才真正知足開閉原則。 Spring給咱們提供了一個很是靈活擴展的基礎技術架構。設計

5)基於模塊的運行時動態擴展。 OSGi給出瞭解決方案,能夠實現模塊級別的動態擴展,並且是運行時的。所謂運行時模塊的動態擴展,好比說你須要增長一些新的功能,你能夠將新開發的類和文件按照Bundle進行組織,而後直接扔到運行時環境下,這些功能就能夠用了。代理

6)基於中間語言。框架一般定義了一些Hotspot(熱點),在這些點上,能夠進行擴展。cdn

哪些設計模式能夠實現可擴展?

工廠模式htm

抽象工廠模式對象

觀察者模式:很方便增長觀察者,方便系統擴展blog

模板方法模式:很方便的實現不穩定的擴展點,完成功能的重用

適配器模式:能夠很方便地對適配其餘接口

代理模式:能夠很方便在原來功能的基礎上增長功能或者邏輯

責任鏈模式:能夠很方便得增長攔截器/過濾器實現對數據的處理,好比struts2的責任鏈

策略模式:經過新增策略從而改變原來的執行策略

如何經過接口、抽象類實現可擴展?

相關文章
相關標籤/搜索