<<代码大全 2>>中的关于类质量的观点也值得推荐:
硬性规定:
1.类层次不宜超过三层.
2.类成员数量不宜超过 7 个,如果全是简单数据类型最多 9 个,有其它类的话限制为 5 个,否则需
要分解成更小的类.
3.避免创建万能类
4.消除不必要的成员.
5.消除无关精要的类.
6.避免用动词命名类.
抽象:
1.类是否有一个中心目的.
2.类的命名是否表现了其中心目的.
3.类的接口是否展现了一致的抽象.
4.类的接口是否让人明白了知道该如何使用它.
5.类的接口是否足够抽象,使使用者不必顾虑它是如何进行服务的.
6.类提供的服务是否足够完整,能让其它类无须动用其内部数据.
7.是否已经尽量分解.
8.在修改类是是否维持了接口的完整性.
封装:
1.是否把类成员的可访问性降至最小.
2.是否避免暴露类中的数据成员.
3.类是否已经尽可能的对其它类隐藏了实现细节.
4.类是否不依赖其它类,它是松耦合的吗?
1. 将公共操作和域放置在超类
显然这是继承最基本的目的,减少编码量,减少业务关注面。让子类更多关注自己的业务
实现,而公共的由共同的超类去操心。
2. 不要使用受保护的域
很多程序员其实都很喜欢“受保护的”(protected)这种作用域,特别是应用在域上,因
为在这种作用域的作用下子类可以轻松的直接访问超类中相应的域,可能也觉得这是理所当然
的事情,因为既然在子类中继承了这个域而不能直接使用它还需要使用 super 关键字来调用超
类方法去访问往往显得很别扭和难看。但是 protected 机制会带来很严重的安全问题,第一,
因为子类集合是无限制的,任何人都可以由一个类派生出另外一个子类,并编写代码直接访问
protected 的实例域,从而破坏封装性;第二,在 Java 中同一个包中的所有类都可以访问
protected 域,而不管它是否为这个类的子类。
评论0
最新资源