嘿,我一直在用C++編程一個學期的OOP,我剛剛啓動C#。我仍然不完全明白如何將圖層彼此分開以及什麼在哪裏。從我的理解有這層:面向對象層
存儲 - >數據訪問 - >業務邏輯 - >命令處理器 - >用戶界面
現在我似乎無法瞭解每個層的責任到底是什麼..
我明白數據訪問只包含像添加,更新,刪除,查詢和方法,數據訪問不關心它插入它只是接收對象作爲參數,並做任何事情。業務邏輯是否從命令處理器發送的數據創建對象,命令處理器從用戶界面獲取數據並對其進行輸入驗證?
而且怎麼會有我發送和收到不同的命令,如查詢命令怎麼會不是一個插入命令太大的不同,因爲它需要將數據發送回..
正如你可能會告訴我相當迷茫,我一直很難找到關於這個主題的好教程。
謝謝!
編輯。
我試圖從數據訪問層查詢方法開始。我有三個子對象存儲在父類型的通用列表中。
我有不同的查詢選項,其中之一是類型。所以我需要搜索父列表並返回每個對象的數據,如果它的類型指定的話。 我的父對象有一個覆蓋的ToString()以及我的孩子,它們調用父母的ToString()將對象的所有數據都轉換爲一個字符串。我在這裏做商業邏輯職責?另外當我得到匹配我的類型的對象的列表,並嘗試迭代拋出一個調用ToString()的foreach它只會調用父ToString()我猜?
public string Lookup(Types type)
{
List<Parents> search = new List<Parent>();
switch (type)
{
case Types.TypeOne:
{
search = ParentDataBase.FindAll(delegate(Child1 findChild) {
return findChild is ChildOne; });
}
break;
case Types.TypeTwo:
{
search = ParentDataBase.FindAll(delegate(Parents findChild) {
return findChild is ChildTwo; });
}
break;
case Types.TypeThree:
{
search = ParentDataBase.FindAll(delegate(Parent findChild) {
return findChild is ChildThree; });
}
break;
}
string results = "";
foreach (Parent x in search)
{
results += t.ToString();
}
return results;
}
開始用MVC?那麼無論什麼是有意義的,取決於你的項目你可以創建圖層避免多餘的圖層。用你的直覺。 – DarthVader
編寫一些垃圾代碼,請求某人有經驗來改變需求並查看需要將問題抽出的地方。這更多的是一個學習過程,而不是讓它第一次工作。 – nhahtdh