我想為 Bank(IBank) 和 Account(IAccount) 定義 2 個介面。我不確定,我應該將串列IAccount放入IBank介面還是輸入型別的IBank屬性IAccount?
根據軟體的需要,我的主要物體是IAccount,我只想IBank找到有關每個帳戶的額外資訊。
這是我的主要實作:
public interface IBank
{
int BankId { get; }
string Name { get; }
string Description { get; }
string BranchCode { get; }
DateTime CreatedAt { get; }
DateTime ModifiedAt { get; }
List<IAccount> Accounts { get; }
}
public interface IAccount
{
int Id { get; set; }
string Name { get; set; }
DateTime Created { get; set; }
string AccountNumber { get; set; }
int BankId { get; set; }
decimal Value { get; }
}
uj5u.com熱心網友回復:
您需要考慮 IBank 和 IAccount 應該代表的業務關系。
所以我假設;
- 一家銀行可以有 0 個、1 個或多個銀行賬戶。
- 一個銀行賬戶只能鏈接到一個銀行。
那么我們可以有以下
public class BankAccount: IAccount
{
//other properties
public IBank AssociatedBank {get; set;}
}
public class Bank: IBank
{
//other properties
public List<IAccount> BankAccounts { get; set; } = new List<BankAccount>();
}
這樣我們就有了我們想要代表的業務關系。每個BankAccount都是 typeIAccount并鏈接到一個單獨AssociatedBank的 type IBank。每個 Bank 都是 typeIBank并且有 0,1 或更多BankAccountstype IAccount。
您需要考慮的是,您真的需要將它們在兩個方向上關聯嗎?根據您的描述,也許您不需要從銀行到賬戶的鏈接,從 BankAccount 到銀行的“單向”鏈接就足夠了。
您的資料模型應該只代表系統中真正需要的內容,其他所有內容都被過度指定。做更多事情很誘人,但堅持規范非常重要。
編輯:如果是這種情況,那么您可以public List<IAccount> BankAccounts { get; set; } ...從您的銀行類中洗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/446820.html
下一篇:如何為這個函式使用繼承
