确定类之间的关系
1继承关系(inheritance relationship):
如果两个类之间有共同特点和方法,并且出现一个类“是一个”另一个类,可以考虑继承关系
2组合关系(composition relationship):
如果一个类的属性里面出现另一个类,及一个类里“有一个”另一个类,可以考虑组合关系
UML图:
UML图用于表示设计的各个类之间的关系,按以下规则编写:
1以长方形方块代表类,对于接口或者抽象类要标明。
2向上指的空心箭头代表继承关系,如果调用接口要标为虚线
3向下指的实心箭头代表组合关系
实现类:
自下而上开发:
有些类的方法需要依靠其他的类实现,那些类叫做合作者(collaborator),而有些类不需要依赖其他类,叫做独立类(independent class)。自下向上开发时先完成独立类,然后拿独立类再作为合作者实现其他类。
为了测试可以构造临时的测试类。还可以构造含有main方法的driver类对类方法进行测试
自上而下开发:
首先选择高级控制类进行开发,在开发过程中辅助类简化已有的类
实现方法:
过程抽象(procedural abstraction):
如果一个类中多个方法需要同一功能,如查找或排序,可以另外建一个辅助方法。辅助方法还可以提高程序可读性。使用辅助方法被称为过程抽象。把一个方法分为几个小方法也被称为stepwise refinement
信息隐藏(information hiding):
实例变量和辅助方法一般设为private,以免被用户调用,这叫做信息隐藏
存根方法(stub method) :
如果要测试一个会调用一个还没有完成的方法的类,可以使用一个存根方法用于占位。
算法(algorithm):
算法是解决一个具体问题的具体步骤,设计好之后再进行算法实现