1. 程式人生 > >設計模式與哲學

設計模式與哲學

word tar .com 進行 引用 方式 tor http itl

http://www.cnblogs.com/feng9exe/p/6782945.html 首先要提到的是,不論是過程論還是對象論,都承認一點,那就是程序世界本質上只有兩種東西——數據和邏輯。數據天性喜靜,構成了程序世界的本體和狀態;邏輯天性好動,作用於數據,推動程序世界的演進和發展。盡管上述觀點是統一的,但是在數據和邏輯的存在形式和演進形式上,過程論和對象論的觀點截然不同。 大家都知道遵循設計原則是開發高質量軟件的重要基礎,但實際運用時並不容易。Booch在<<面向對象分析與設計>>中提出了四個基礎原則:
  • 抽象 核心思想是不變性的概念。去除不關心的屬性,而強化重要的屬性,幫助人們思考要做什麽。
  • 封裝 核心是分離關註和信息隱藏,讓程序借助最少的工作進行可靠的修改。
  • 模塊化 核心思想是分而治之,各個模塊應當高內聚、低耦合。
  • 層次結構 核心是對抽象的分級和排序,可以簡化對系統的理解。

軟件的組織、結構與變化。

創建型:對象生成、數據(狀態)配置、內部組織;(面向對象基本單元:類);簡單類、復雜類(對象)的生成方式。

結構型:二次組織;生成組織結構。

創建性與結構型設計模式,描述了系統的靜態結構和基本功能。

行為型:軟件的復雜功能,封裝了軟件的變化。用於構造穩定的抽象層。

軟件設計模式的分類

2.1. 創建型

創建對象時,不再由我們直接實例化對象;而是根據特定場景,由程序來確定創建對象的方式,從而保證更大的性能、更好的架構優勢。創建型模式主要有簡單工廠模式

(並不是23種設計模式之一)、工廠方法、抽象工廠模式單例模式、生成器模式和原型模式。

2.2. 結構型

用於幫助將多個對象組織成更大的結構。結構型模式主要有適配器模式adapter、橋接模式bridge、組合器模式component、裝飾器模式decorator、門面模式、亨元模式flyweight和代理模式proxy

2.3. 行為型

用於幫助系統間各對象的通信,以及如何控制復雜系統中流程。行為型模式主要有命令模式command、解釋器模式、叠代器模式、中介者模式、備忘錄模式、觀察者模式、狀態模式state、策略模式、模板模式和訪問者模式。

UML:關聯、聚合、組合;

結構性模式定義的耦合關系為組合或聚合;

行為模式為關聯;更多時候為函數內和接口的參量的引用。

設計模式與哲學