java基础知识之软件设计

来源:互联网 发布:永久免费域名申请 编辑:程序博客网 时间:2024/06/03 22:38
开发软件的关键在于应用抽象概念
方法抽象(method abstraction)是通过将方法的使用和它的实现分离来实现的。方法的实现细节封装在方法内,对该用户来说是隐藏的,叫信息隐藏(information hiding)或封装(encapsulation)。如果决定改变方法的实现,只要不改变方法的签名,该用户程序就不受影响。

通过分治(divide-and-conquer)策略或逐步求精(stepwise refinement),将大问题分解成小问题。

分治:
自顶向下的设计
自底向上的实现

类的抽象
类的抽象是指将类的实现和类的使用分离开,实现细节被封装,并且对用户隐藏,这被称为类的封装。

类的关系
为了设计类,需要探究类之间的关系。类中的关系通常是关联,聚合,组合以及继承
关联:关联是一种二元关系,描述两个类之间的活动。例如学生选课(Student)和课(Course)是一种类和类之间的关联。
聚集:聚集是关联的一种特殊形式,代表了两个对象之间的归属关系。聚集建模has-a关系。所有者对象称为聚集对象,它的类称为聚集类。
组合:一个对象可以被多个其它的对象所拥有,如果一个对象只属于一个聚集对象,那么它和聚集对象之间的关系称为组合(composition)
继承:建模”is-a"的关系。

类的设计原则
1 内聚性
类应该描述一个单一的实体,所有的类操作应该在逻辑上相互配合,支持一个一致的目的
例如,设计一个类用于学生,不应该将学生和教职工混合在一起
如果一个类负担太多的职责,就应该按照各自的职责分成几个类。
2一致性
为类,数据和方法选有具有信息的名字,通常的风格是将数据声明置于构造方法之前。并将构造方法置于方法之前。
如果不想让用户创建类的对象,可以在类中声明一个私有的构造方法。Math类就是如此
3封装性
一个类应该使用private修饰隐藏的数据,以免用户直接访问它。
4清晰性
不应该声明来自自其他数据域的数据域。例如,age可以从birthdate导出,所以age不应该声明为数据域。
5完整性
类是为许多不同的用户设计的,为了能在一个广泛的应用中使用,一个类应该通过属性和方法提供多种方案以适应用户不同的需求。
6实例和静态
依赖于类的具体实例或方法必须是一个实例变量或方法,如果一个变量被所有的实例共享,那就已更改将它声明为静态的。
不要从构造方法中传入参数初始化静态数据域,最好使用set方法改变静态数据域;
7继承和聚合
继承和聚合之间的关系就是(is-a)和(has-a)之间的关系
8接口和抽象类
接口和抽象类都可用于对象的共同行为,比较强的(is-a)关系用抽象类建模,弱的(is-a)关系,也叫kind-of(是一类)关系,表明一个对象拥有的某种属性,用接口建模。



0 0
原创粉丝点击