OO - 在不引入错误命名约定的情况下将对象与实例分离的技术

时间:2011-08-19 17:19:31

标签: oop

我经常需要创建一个封装来保存实体的数组。假设我们有一个表示HTML表的类。

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

在这里,我的Tables封装了Table的集合。我想调用我的Table [] Object Tables,但这与我的Encapsulation冲突。对我来说,两者都代表一张桌子。我应该如何修复我的命名?

其次,我的表格包含一个页脚

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

我可以通过让我的会员降低来解决这个问题。虽然这违反了微软推荐的公共成员做法。

我可以在我的会员名字上添加一个Obj ......再一次,这不是一个好习惯。也许我正在查看我的OO封装错误。

3 个答案:

答案 0 :(得分:3)

您的命名应尽可能具有描述性。你的Tables类需要一个新类而不仅仅是一个数组的特性是什么?如果没有任何内容,那么只需使用数组,否则在名称中包含类的独特功能。

答案 1 :(得分:1)

“在这里,我的表格封装了一个表格集合。”

为什么不打电话给你的班级 - TableCollection?

答案 2 :(得分:0)

使用generics / templates /以您的语言调用它:

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

如果您需要在 集合类上使用自定义方法(即通过this调用),那么您做错了。