我正在使用C#編寫一個類庫。我設計了3個主要類來幫助建模我們的數據。它們被設計成類A包含B類實例的列表,以及B類包含引用到C類的實例,即:在C#或OOP中,兩個類應該相互引用哪些是相關的?
public class Policy
{
public List <PolicyTerm> myTerms;
person Customer;
string PolicyNumber;
}
public class PolicyTerm
{
public Billing myBill;
Datetime effectivedate;
List <Activities> termActivities;
public doAction()
{
use value from Policy, like PolicyNumber;
}
}
public class Billing
{
float remainingBalance;
Datetime nextDueDate;
public void doSomething()
{
reference value from PolicyTerm, such as effective date;
use value from Policy, such as PolicyNumber;
}
}
我的問題是,當我嘗試使用PolicyTerm內的方法或需要來自包含類的數據的帳單。在上面的例子中,這將是「doSomething」嘗試使用PolicyTerm中的值的方法,例如向數據庫請求或保存數據的術語生效日期。
我想知道是否因爲這種情況而爲我的課程設計了正確的設計。我應該在子類中添加對「父」類的引用,以便使父數據可用?還是我需要重新考慮代碼的整體結構和設計?
我覺得類設計適用於數據建模和業務規則建模,但它確實會造成像上述情況一樣的侷限性。我喜歡將PolicyTerm和Billing分開,以便能夠獨立修改和測試代碼。另外,我覺得它讓每個部分都變得更小更簡單。
任何意見,可以提供將不勝感激。
更新:代碼塊已更新,以提供有關代碼的更多詳細信息。
爲什麼你不瘦下來實際你想使用的代碼並告訴我們?這樣的事情真的取決於情況。 – ChaosPandion 2010-03-04 16:51:52