软考知识点总结之面向对象设计(一)

1、数据流图,ER图
2、面向对象特点:抽象、封装、继承、多态
3、采用继承机制创建子类时,子类中可以有新的属性和行为
4、面向对象分析过程中,从给定需求描述中选择名词短语来识别对象
5、UML图,各种箭头的含义::实心菱形表示组合关系(类图中)
6、对象快照是对象图的。UML类图中,不需要对对象快照进行建模,但是会对系统词汇、简单的协作、逻辑数据库模式进行建模
7、设计模式之状态模式:
|允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。
|整个状态模式的基类也是对外的接口
8、行为型对象模式:一个对象在其内部状态改变时改变其行为
9、在面向对象方法中,两个及以上的 类作为一个类的超类时,称为(多重继承),使用它可能造成子类中存在二义性的成员
10、采用面向对象方法进行软件开发时,分析阶段,架构师主要关注系统的行为,即系统应该做什么
11、在面向对象方法中,多态指的是客户类无需知道所调用的方法的特定子类的实现;
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。也就是说客户类其实在调用方法时,并不需要知道特定的子类实现,都会用统一的方式来调用
12、通信图:描述对象和对象之间的关系,即一个类操作的实现。简而言之就是,对象和对象之间的调用关系,体现的是一种组织关系。其中,如果一个框中的名称中带有“:”号,说明这表示的是一个对象,“:”号前的部分是对象名,“:”号后面的部分是类名。而对象之间连线上面的箭头所表示的是对象之间通信的消息。如图:

下面图引用自计算机软件考试2017年上半年试题 软考知识点总结之面向对象设计(一)

13、观察者模式:观察者将自己注册到事件,那么具体的事件就知道了自己的观察者。观察者和事件都有自己的抽象,当实现具体的观察者和事件的时候都要实现相应接口,所以对扩展是开放的。
此模式最主要的特征是:类应该对外扩展开发,对修改关闭。
14、装饰模式是一种对象结构型模式,可动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。通过装饰模式,可以在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;当需要动态地给一个对象增加功能,这些功能可以再动态地被撤销时可使用装饰模式;当不能采用生成子类的方法进行扩充时也可使用装饰模式。
15、外观模式是对象的结构模式,要求外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
16、在收到消息时,对象要予以响应。不同的对象收到同一消息可以产生完全不同的结果,这种现象就叫多态。动态绑定是实现多态的基础。
17、面向对象分析的任务是了解问题域所涉及的对象、对象间的关系和操作,然后构造问题的对象模型。包括认定并组织对象、描述对象间的相互作用、确定基于对象的操作,并不包括面向对象程序设计。
18、UML状态图的状态转换要理解。(实例:软考2016年下半年试题40)
19、UML状态图中,对于转换,活动可以在转换时执行也可以在状态内执行,且监护条件只有在相应的时间发生时才进行检查,一个转换应该有事件触发器、监护条件和多个状态。是事件触发转换。
20、策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
应用场景:
1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。
2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。
3、 对客户隐藏具体策略(算法)的实现细节,彼此完全独立。

21、生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
实用范围
1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2 当构造过程必须允许被构造的对象有不同表示时。