2013-04-07 131 views
0

我正在爲Java項目設計類層次結構。它涉及創建一個類層次結構來表示多個銀行賬戶。 現在,所有的銀行賬戶都有一些共同的屬性。這些可以移動到一個抽象類。但是,有幾個銀行賬戶共同擁有一個屬性,但不是全部屬性。我應該如何在類層次結構中實現此屬性? 我可能不應該在所有相關的類中反覆實施該屬性,但我想不出另一種方式來做到這一點..如何設計類層次結構

+0

您可以設計一個界面,該界面綁定銀行賬戶的行爲合約。接下來,Abstract類可以包含所有銀行帳戶的常見行爲。然後,您可以使用裝飾模式來修飾您的類以具有特定的行爲。 有很多需要討論,但這裏的要點。希望這可以幫助。 – Sid 2013-04-07 16:18:58

+0

我剛剛開始OOP ..一些(像'裝飾模式')對我來說有點太複雜。 – mahela007 2013-04-07 16:49:49

回答

0

您可以使用mixins的編程概念。也可參見:D. Ancona,G.Lagorio和E.Zucca。 Jam - 用 mixins設計Java擴展。 ACM Trans。程序。郎。 Syst。,25(5):641-712,2003。

+0

根據維基百科頁面,Java似乎不支持這個概念。 – mahela007 2013-04-07 16:52:44

+0

無效回覆。 – Sid 2013-04-07 17:01:14

+1

Java沒有在本質上支持這個概念。但是,可以創建一個自己的數據結構來促進這一點。 (我添加了一個參考。) – nrainer 2013-04-07 21:33:27

3

讓我儘可能地幫助你。

您可以有一個接口IBankAccount,它定義了銀行賬戶的常見行爲。只會有方法定義。例如。一個銀行賬戶應該允許credit(),debit(),getBalance()等方法。它可以有一些額外的方法對所有銀行賬戶都不那麼常見。

接下來,您可以擁有一個BaseBankAccount類,它將是抽象的並實現這些commmon方法。這是因爲credit(),debit()和getBalance()在銀行賬戶中會有一個共同的行爲。

然後,您可以定義一個BankDecorator接口來定義BankAccount行爲。特殊的裝飾者將實現這個界面來爲銀行賬戶添加額外的功能。例如。 CurrentBankAccountDecorator將添加當前帳戶功能等。

希望這有助於。

+0

我將不得不閱讀一些關於'裝飾者'..感謝指出我在正確的方向。 – mahela007 2013-04-07 18:08:00

+0

這不是解決問題的唯一方法。我希望其他人回答更好的解決方案。我們可以互相學習很多東西。 – Sid 2013-04-07 18:11:02