2011-08-19 15 views
1

通常情況下,我需要創建一個封裝來容納一個實體的數組。假設我們有一個表示HTML表的類。OO - 在不引入錯誤命名約定的情況下從對象中分離對象的技術

public class Tables 
{ 
    public Table[] Tables; 
    public Tables(){} 
} 
public class Table 
{ 
    public Header Header; 
    public Row Row; 
    public Footer Footer; 
    public Table(){} 
} 

在這裏,我Tables封裝的Table的集合。我想打電話給我的表[]對象Tables,但這與我的封裝衝突。對我來說,兩者都代表一張桌子。我應該如何解決我的命名問題?

其次,我的表中包含一個頁腳

//A Special type of Row in a Table 
public class Footer: Row 
{ 
} 

我可以讓我的會員下套管解決這個問題。儘管這違反了微軟爲公衆成員推薦的做法。

我可以將Obj附加到我的會員名......再次,這不是一個好習慣。也許我正在查看我的OO封裝不正確。 「

+0

爲什麼你有一個完整的類只是爲了存儲一個對象數組(表)?我知道你說過「我經常需要」,但這看起來並不像你需要做的事情。 –

+0

也許有(或將會)更多的東西在裏面。我不認爲這種類在OOP中是非常罕見的。 –

回答

3

你應該儘可能描述你的命名。你的Tables類的功能是什麼,需要一個新的類而不僅僅是一個數組?如果沒有任何東西,那麼就使用一個數組,否則在名字中包含你的類的顯着特徵。

+0

表格旨在成爲未來的證明。當/如果表集合的唯一行爲/屬性出現時,消費者將已經擁有表集合。現在,是的,一個數組將工作。儘管如此,這並不能回答問題2。 –

+0

如果是這種情況,那麼我只會跟@Legogris一起,並將它命名爲TableCollection。另外,你可能只需要命名你的'Tables'數組''或者其他的東西。它已經很明顯是什麼類型的類名。一般來說,如果我真的不知道任何需要它的情況,我會避免「未來打樣」,因爲它會增加不需要的複雜性。 – mydogisbox

+0

在「驗證」您的代碼之前,請先閱讀以下內容:http://en.wikipedia.org/wiki/You_ain't_gonna_need_it – vidstige

1

」這裏,我的表格封裝了一個表集合。「

爲什麼不打電話給你的班 - TableCollection?

0

使用泛型/模板/不管它被稱爲在你的語言:

List<Table> ArrayList<Table> Collection<Table>

如果您需要一個自定義的方法集合類(即通過this調用),你做錯了。

相關問題