網上關於此類的討論非常多,發現對於該問題的理解各有各的說法,而各個說法中又相去甚遠。通過瀏覽這些討論以及對《O'Reilly - UML 2.0 In A Nutshell (2007)》的參考,發表一下自己的看法類間關係有很多種,在大的類別上可以分為兩種:縱向關係、橫向關係。縱向關係就是繼承關係,它的概念非常明確,也成為OO的三個重要特徵之一,這裡不過多的討論。橫向關係較為微妙,按照UML的建議大體上可以分為四種:依賴 (Dependency) 關聯
IoC (Inversion of Control)是什嗎?軟體設計大師已經作出了很多定義。這裡,我從組件開發的角度來談什麼是IoC-“IoC是一種設計模式,當系統由多個組件(Component)構成時,它能消除組件間的直接依賴關係,讓組件的開發更獨立,使用更靈活”。IoC是Framework的基本特徵,但IoC並不專屬於Framework設計範疇,它在需要消除組件依賴的地方都能發揮作用。下面舉一個開發執行個體:需要開發一個計算機組件,實現整數加法運算,計算過程將記錄log。針對上面的需求
Single Responsibility Principle defines a responsibility as a reason to change, and concludes that a class or module should have one, and only one, reason to
原文:Test or spec? Test and spec? Test from spec! [作者簡介:Bertrand Meyer是Eiffel語言的創造者,他在著作《Object Oriented Software Construction》中提出的Design by Contract思想被視為與封裝、繼承和多態同樣重要的OOP思想。目前,Design by Contract已經以Code Contract的形式正式進入.NET 4.0。] Which came first? As
前幾天,我在北京參加了Lean軟體開發方法先驅Mary Poppendieck的“Lean Workshop”(精益工作坊)專場演講。如果說從形式上看,Scrum表現為一個個的迭代(Iteration),那麼Lean則表現為價值流(Value Stream)。Lean方法特彆強調了消除浪費,保證價值流快速順暢地流動。這個觀念不難被接受,但第一次接觸Lean開發的我對Mary提到的“進行中的工作是一種浪費”(Work in Process is
REST(Representational State Transfer)是HTTP協議的作者Roy Fielding博士在其博士論文中提出的一種互連網應用構架風格。與以遠程對象為核心的ORB和以服務為核心的SOA相比,以資源為核心的REST讓我們從嶄新的視角審視互連網應用。REST為互連網應用量身定做的簡潔模型、與HTTP協議的完美結合、構架的高伸縮性,為互連網應用構架設計和異構系統整合設計帶來了一股清新的空氣。本文希望與大家分享REST風格構架設計的體會,錯誤不足之處歡迎批評指正。