在設計軟件時我發現它有用來看待事物從一種類型的理論點,順其自然我。
工作區是類型的項目+項目^ 2 +項目^ 3 ...(意爲無論是項目列表真正是工作區的真實)
同樣,
一個項目的類型爲資源+資源^ 2 +資源^ 3 ...
甲資源是型文件+文件的^ 2 +費爾E 1 3 ...
所以在像C#語言†可以定義你工作臺類正是如此:
public class WorkSpace : IList<Project> //the important thing here is that you're declaring that things that are true for a list of Projects is true for a WorkSpace. The WorkSpace class may in fact do other stuff too...
{
}
和類似的其他類。
然後在你的客戶端代碼,你會使用這樣的:
foreach (var project in WorkSpace)
{
//do stuff
}
或
Projects.Add(new Resource() { file1, file2, file3, file4, /* etc */});
想想類型和它們之間的關係第一次。封裝是一個低層次的家務理念。原則是保持相關的代碼靠近在一起,而不相關的代碼相距甚遠(如果相隔很遠,則意味着在某種邊界(例如函數或類或任何其他語言可能提供的邊界概念)之間或之後)。
†從張貼的歷史我猜測,你熟悉C#,但是這也適用於其他語言。
我也有一個相關的問題,我在這裏添加.. http://stackoverflow.com/questions/3186632/a-design-for-adding-resources-to-a-project – Amitd 2010-07-06 15:24:44