1.类要单一
2.加强内聚,松散耦合
3.好的封装性
4.类的粒度要合理
5.实现类不能依赖它的使用类
6.应考虑灵活性,也就是可配置、可维护
可配置:可以通过修改配置文件来选择系统提供的功能
可维护:可以很方便地修改功能,容易定位bug,功能隔离较好,不会牵一发而动全身
7.要考虑性能、考虑可伸缩性
综合性能、性能定点、性能拐点,软件的体系结构决定了性能的顶点
8.要考虑今后可能的变化,也就是可扩展性
9.要考虑合理的复用
10.要合理地考虑接口和抽象类的使用
优先使用接口,抽象类既要约束子类的行为,又要为子类提供公共的功能。
11.尽量减少类与协作类的交互次数和交互信息的量
12.父类不应知道子类的信息,子类必须知道父类的信息
13.更多地使用类的组合,而不是继承
14.访问对象必须通过接口,不能绕过接口直接去访问。