首先给一个定义,对象是具有明确语义边界并封装了状态和行为的实体,由一组属性和作用在这组属性上的一组操作构成;它是构成系统的一个基本单位。
因为在面向对象语言中,思想是把程序做成一个个类组成。在分析的时候需要抽象出一些实体,这些实体内部联系紧密,可以完成独立功能,称之为对象。对象在程序中就是设计成一个个类。比如研究一辆车的时候,把轮胎,外壳,发动机这些都看成一个个对象,在程序设计中往往就是轮胎类,外壳类,发动机类。
在类设计时,先要做好需求分析和用况图设计。需求分析和用况中是没有设计出具体那些类的,所以类设计第一步就是发现类,可以从问题域,系统边界,系统责任,名次、代词、名次短语这些去考虑,找出 类。找出类之后就是审查和筛选,把发现的类中无用的类删去,并且精简类,重复无用的类和冗余会给程序造成困扰。
第二步就是属性和操作的识别,属性用于描述静态特征,操作是类具有的行为,被要求执行的服务。识别属性与识别类的方法类似,但是有很多要注意的地方。识别属性:(1)属性应该是静态的特征(2)描述自身用得到的特征(3)属性所对应的一个事物性质的粒度要合适,比如人的通信地址,包括国家,城市,门牌号等,描述”人员“的时候,应该使用一个属性 通信地址 而不是把有关的内容拆开多个属性描述。本阶段不考虑实现条件的问题,属于OOD。识别操作:(1)从系统责任和问题域考虑,还可以从状态转换会引起的什么行为,状态转换是由什么行为引起(状态机图)和模拟执行路线发现操作(2)去除多余的没用的操作(3)检查操作是否是高内聚的,一个操作应该完成有且只有一个功能。