<九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性
设计类
--->设计类是系统实施中一个或多个对象的抽象。
--->设计类已经直接映射到实现代码了,因此设计类依赖于实施语言。另一方面,设计类来源于前期的系统分析,在统一过程中,类不是品空想像出来的。他们可以一一映射到前期系统分析的成果上。从这个观点出发,分析类的重要性就能够体现出来。分析类为设计类中多需要的界面,逻辑和数据提供了非常好的抽象基础,设计类可以非常容易和自然地从分析类中演化出来。
类
--->类对对象进行定义,而对象又实现(或成为实施)用例。类的来源可以是用例实现对系统所需对象的需求,这是为实现业务需求而定义的。也可以是任何以前已开发的对象模型,即现有的系统模块,采用的软件框架,第三方产品等。类说明了对象是什么,同时也决定了对象拥有什么属性,具有什么方法。在java和C++这些典型的面向对象语言里,类就对应于一个class声明。
--->类是对对象某一方面特征的归纳和抽象,而对象则是类实例化的结果。
属性
---->属性是对象的特征。
---->属性同时表明对象的唯一性。
方法
---->原则上,访问对象或影响其他对象的属性或关系的唯一途径是方法,直接访问和修改对象属性是不提倡的。
---->对象的方法由它的类进行定义。大多数情况下,类定义的方法都是由实例化后的对象执行的,即这些方法为对象方法。但有时候也可以由类来执行,这种方法称之为类方法。例如,在java中,类方法是由static关键字声明的。一个static方法可以由类来执行而不必实例化成对象。
---->方法的作用是访问和改变对象的属性,有时候方法仅仅封装了算法,执行该方法不会改变对象的属性,在面向对象中,需要注意的原则是一个对象的属性只应该由它自己的方法来改变。
可见性
---->类的属性和方法都有相似的可见性定义,各编程语言对可见性的处理是不完全一致的。在UML中,可见性可以归纳为以下四类
---->共有:除了类本身意外,属性和方法对其他模型元素也是可看见的。共有的可见性应该尽量少用,共有就意味着将类的属性和方法暴露给外部,这与面向对象的封装原则是矛盾的。暴露给外部的内容越多,对象越容易受影响,越容易形成高耦合度。
--->保护:属性和方法只对类本身,它的子类或友元(取决于具体语言)是可看见的。保护可见性是默认的可见性。它保护属性和方法使其不被外部类使用,防止行为的耦合和封装变得松散。
---->私有:属性和方法只对类本身和类的友元(取决于具体语言)是可视的。私有的可见性可以用在不希望子类继承属性和方法的情况下。它提供了从超类对子类的去耦方法。并减少了删除或排除未使用继承操作的需要
---->实施:属性和方法只在类本身的内部是可看见的(取决于具体的语言)。实施可见性最具限制性。当只有类本身才可以使用操作时,使用这种可见性。它是私有可见性的变体。