第二组第三次作业
《UML》
一、UML视图
UML的各种概念和结构并不存在明显的界限,但为了方便,我们将它们划分至多个视图。视图是表达系统单个方面的UML建模结构的简单子集。视图在最高层次可以划分为三个领域:结构性分类、动态行为和模型管理。结构性分类描述了系统中的事物和事物间的关系。分类包括类、用例、构件和结点。分类提供了动态行为构建的基础。分类视图包括静态视图、用例视图和实现视图。
动态行为描述了系统时间上的行为。行为可以用静态视图中系统快照的一系列变更来描述。行为视图包括状态机图、活动图和交互图。模型管理描述了用层次式的单元对模型自身的组织。包是模型的通用组织单元。特殊的包包括模型和子系统。模型管理视图与其它视图相交迭,为团队工作和配置控制把它们组织起来。
二、静态视图
静态视图对应用领域的概念建模,以及将内建的概念作为应用实现的一部分。该视图不描述时间相关的行为,因而是静态的。静态视图的主要组成部分是类和关系:关联、继承和各种依赖,如实现和使用。类是,对应用领域或应用方案概念的描述。类间的关系绘成连接类的路径。
三、用例视图
用例视图对外部用户——称为活动者——所感知的统功能进行建模。用例是用活动者和系统之间的交互来表达、条理分明的功能单元。用例视图的目的是列举活动者和用例,显示活动者在每个用例中的参与情况。
四、交互视图
交互视图描述了实现系统行为角色之间的消息交换序列。分类角色是对交互中充当特殊
角色的对象的描述,从而使该对象区别于相同类的对象。视图提供了系统中行为全局的描述——它显示了多个对象间的控制流程。交互视图用侧重点不同的两种图来显示:顺序图和协作图。顺序图:顺序图表示了随时间安排的一系列消息。顺序图可以表达场景——即一项事务的特定历史。顺序图的一个用途是显示用例的行为序列。协作图:协作对交互中存在意义的对象和链建模。协作图的一个用途是表现操作的实现。协作显示了操作的参数和局部变量,以及更永久性的关联。当行为被实现时,消息的顺序与程序的嵌套调用结构和信号传递一致。
五、状态机视图
状态机对类的对象的可能生命历史建模。状态机包含由迁移连接的状态。每个状态对对象生命期中的一段时间建模,该时间内对象满足一定的条件。当事件发生时,它可能导致迁移的激发,使对象改变至新状态。当迁移激发时,附属于迁移的动作可能被执行。状态机显示为状态图。
六、活动视图
活动视图是用于显示执行某个计算过程中的运算活动的状态机的一种变形。活动状态表
现了一项活动:工作流的步骤或操作的执行。活动图描述了顺序和并发活动分组。活动视图表达为活动图。动作的输入和输出参数可以显示成连接动作和流关系和对象流状态。
七、物理视图
物理视图对应用本身的实现结构建模,如将其组织为构件和在运行结点上进行配置。有两种物理视图:实现视图和配置视图。
八、模型管理视图
模型管理视图对模型本身的组织建模。模型由一系列包含模型元素(如类、状态机、用例)的包构成。包可以包含其它包:因此,模型指派了一个根包,间接包含了模型的有
内容。包是操纵包内容,以及访问控制和配置控制的单元。每个模型元素被包或其它元素所拥有。模型管理信息经常在类图中出现。
九、扩展结构
UML包含了三种扩展结构:约束、版型、标签值。约束是用某种正式语言或自然语言表
达的语义关系的文字陈述。版型是基于已有的模型元素,由建模人员修订的新模型元素。标签值是一条可以附加给任何模型元素的命名信息。
十、视图间的联系
不同的视图在单个模型中并存,它们的元素之间存在许多关连。
《创建型模式》
从目的来看:模式可以分为创建型模式、结构型模式、行为型模式。从范围来看:1、类模式处理类与子类的静态关系2、对象模式处理对象间的动态关系。而创建型模式有Singleton单件、Abstract Factory抽象工厂、Builder 生成器、Factory Method工厂方法、Prototype原型。
一,单线程Singleton模式的几个要点为:1.Singleton模式中的实例构造器可以设置为protected以允许子类派生2.Singleton模式一般不要支持ICIoneable接口3.Singleton模式一般不要支持序列化4. Singleton模式只考虑到了对象创建的管理,没有考虑对象销毁的管理5. 不能应对多线程环境。
二,Abstract Factory模式的几个要点为:
1.如果没有应对“多系列对象构建”的需求变化,则没有必要使用Abstract Factory模式,这时候使用简单的静态工厂完全可以。
2. “系列对象”指的是这些对象之间有相互依赖、或作用的关系,例如游戏开发场景中的“道路”与“房屋”的依赖,“道路”与“地道”的依赖3.Abstract Factory模式主要在于应对“新系列”的需求变动。其缺点在于难以应对“新对象”的需求变动。4.Abstract Factory模式经常和Factory Method模式共同组合来应对“对象创建”的需求变化。
三,Builder模式的几个要点为:
1.Builder模式主要用于“分步骤构建一个复杂的对象”。2.变化点在哪里,封装哪里——Builder模式主要在于应对“复杂对象各个部分”的频繁需求变动。其缺点在于难以应对“分步骤构建算法”的需求变动。3.Abstract Factory模式解决“系列对象”的需求变化,Builder模式解决“对象部分”的需求变化。Builder模式通常和Composite模式组合使用。
四,Factory Method模式的几个要点为:
1.Factory Method模式主要用于隔离类对象的使用者和具体类型之间的耦合关系。2.Factory Method模式通过面向对象的手法,将所要创建的具体对象工作延迟到子类,从而实现一种扩展(而非更改)的策略,较好地解决了这种紧耦合关系。3.Factory Method模式解决“单个对象”的需求变化,Abstract Factory模式解决“系列对象”的需求变化,Builder模式解决“对象部分”的需求变化。
五,Prototype模式的几个要点为:
1.Prototype模式同样用于隔离类对象的使用者和具体类型(易变类)之间的耦合关系,他同样要求这些“易变类”拥有“稳定的接口”2.Prototype模式对于“如何创建易变类的实体对象”采用“原形克隆”的方法来做,它使得我们可以非常灵活的动态创建“拥有某些稳定接口”的新对象——所需工作仅仅是注册一个新类的对象(即原型),然后在任何需要的地方不断地Clone3.Prototype模式中的Clone方法可以利用. NET中的Object类的MemberwiseClone()方法或者序列化来实现深拷贝。总之,Singleton模式解决的是实体对象个数的问题,除了Singleton之外,其他创建型模式解决的都是new所带来的耦合关系。