A ;D,D。实际答案:C;D,D
D,PAD图是是一种用于描述程序逻辑和结构的图形化工具
A,B。实际答案A,D。
B,C,A。蒙对了
创建性模式支持对象的创建。该模式允许在系统中创建对象,而不需要在代码中标识特定类的类型,这样用户就不需要编写大量、复杂的代码来初始化对象。它是通过该类的子类来创建对象的。在不指定具体类的情况下,Abstract Factory模式为创建一系列相关或相互依赖的对象提供了一个接口。根据给定的相关抽象类,Abstract Factory模式提供了从一个相匹配的具体子类集创建这些抽象类的实例的方法。Abstract Factory模式提供了一个可以确定合适的具体类 的抽象类,这个抽象类可以用来创建实现标准接口的具体产品的集合。客户端只与产品接口和 Abstract Factory 类进行交互。使用这种模式,客户端不用知道具体的构造类。Abstract Factory模式类似于Factory Method模式,但是Abstract Factory模式可以创建一系列的相 关对象。Builder模式将复杂对象的构建与其表示相分离,这样相同的构造过程可以创建不同的对象。通过只指定对象的类型和内容,Builder模式允许客户端对象构建一个复杂对象。客户端可以不受该对象构造的细节的影响。这样通过定义一个能够构建其他类实例的类,就可以简化复杂对象的创建过程。Builder模式生产一个主要产品,而该产品中可能有多个类,但是通常只有一个主类。Prototype模式(原型模式)允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象。使用Prototype实例,便指定了要创建的对象类型,而通过复制这个Prototype,就可以创建新的对象。Prototype模式是通过先给出一个对象的Prototype对象,然后再初始化对象的创建。创建初始化后的对象再通过Prototype 对象对其自身进行复制来创建其他对象。Prototype模式使得动态创建对象更加简单,只要将对象类定义成能够复制自身就可以实现。
看这样子有类名,属性和方法;时序图/顺序图应该有消息:同步、异步、返回,所以B排除;C构件图/组件图应该没这么详细,而且应该带着半圆的供接口,和圆形的需接口,C排除,对象图是类图的快照,而且看图里有1:n之类的可能是类图D,既然是类图,一般是用于开发,选B
A,D,C,B
在任何设计活动中都存在着某些重复遇到的典型问题,不同开发人员对这些问题设计出不同的解决方案,随着设计经验在实践者之间日益广泛地被利用,描述这些共同问题和解决这些问题的方案就形成了所谓的模式。设计模式主要用于得到简洁灵活的系统设计,按设计模式的目的划分,可分为创建型、结构型和行为型三种模式。创建型模式是对对象实例化过程的抽象。例如 Singleton模式确保一个类只有一个实例,并提供了全局访问入口;Prototype模式允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象;Builder模式将复杂对象的构建与其表分离。结构型模式 主要 用于如何组合已有的类和对象以获得更大的结构 ,一般借鉴封装、代理、继承等概念将一个或多个类或对象进行组合、封装,以提供统一的外部视图或新的功能。行为型模式主要用于对象之间的职责及其提供的服务的分配,它不仅描述对象或类的模式,还描述它们之间的通信模式,特别是描述一组对等的对象怎样相互协作以完成其中任一对象都无法单独完成的任务。
C。实际选A
D,C,D,D。实际答案,D,A,B,A。
按照内容分
创建型:Abstrator Factory、Builder(构建器)、Factory Method(工厂方法)、Prototype(原型)、Singleton(单例)
结构型:Adapter(适配器)、Bridge(桥接)、Composite(组合)、Decorator(装饰)、Facade(外观)、Flyweight(享元)、Proxy(代理)
行为型:Chain of Responsibility(职责链)、Command(命令)、Interpreter(解释器模式)、Iterator(迭代器模式)、Mediartor(中介者)、Memento(备忘录)、Observer(观察者)、State(状态)、Strategy(策略)、Template Method(模板方法)、Visitor(访问者)
常靠的记忆要点:
创建型:
- Abstrator Factory:提供一个接口,用它可创建一系列相互依赖的对象,无需指定具体的类。
- Builder:类和构造分离。类比较复杂的时候,将表示和构造分开,构件过程有不同的表示。
- Prototype:原型实例,拷贝。用原型实例指定创建对象的类型,然后拷贝这个原型来建新对象。
- Singleton:单例
结构型:
- Adapter:转换、兼容、适配
- Bridge:把抽象部分和实现部分分离,各自独立变化。
- Composite:将对象组合成树形结构以表示"整体-部分"的层次结构,这样用户对单个对象和组合对象使用具有一致性。
- Decorator:动态给对象附加职责,扩展更灵活。
- Facade:对外统一接口。定义个高层接口,为一组接口提供一致的外观。
- Flyweight:大量细粒度共享
- Proxy:代理控制
行为型:
- chain of Responsibility:传递请求、职责、链接。将对象链接起来,请求在链中传递,直到找到处理的对象。
- Command:日志记录、可撤销操作。
- Interpreter:解释器,虚拟机。
- Iterator:顺序访问,不爆露内部。
- Mediator:不直接引用。
- Memento:保存,回复。
- Observer:通知,自动更新。
- State:状态变成类。
- Strategy:算法替换
- Visitor:数据和操作分离
- Template Method:定义了算法骨架,详细步骤子类,达到不改变算法结构重定义算法步骤。
C,C,B。实际答案:B,C,D
面向对象有分析模型、数据模型、用例模型;而分析模型中顶层架构图是结构、用例是数据。
D ,C,A,D。蒙对了。
C,C,D。实际B,C,D
C,D,D,B。实际答案:C,D,C,D。还是要熟悉23中模式的名字和主要是干啥的
A。会员注册,必须要先干电话注册或者是邮件注册。实际选C。
A,B
D ,C
- 单一职责原则:设计目的单一的类。
- 开放-封闭原则:对扩展开放,对修改封闭。李氏(Liskov)替换原则:子类可以替换父类。
- 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。
- 接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
- 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。
- 迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
- 解释器(interpreter)模式。解释器模式属于类的行为型模式,描述了如何为语言定义 interpreter一个文法,如何在该语言中表示一个句子,以及如何解释这些句子,这里的“语言”是使用规定格式和语法的 代码。解释器模式主要用在编译器中,在应用系统开发中很少用到。
- 策略(strategy) strategy模式。策略模式是一种对象的行为型模式,定义一系列算法,并将每一个算法封 装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,其目的是将行为和 环境分隔,当出现新的行为时,只需要实现新的策略类。
- 中介者(mediator)模式。中介者模式是一种对象的行为型 mediator模式,通过一个中介对象来封装一系列 的对象交互。中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者对象的存在保证了对象结构上的稳定,也就是说,系统的结构不会因为新 对象的引入带来大量的修改工作。
- 迭代器(iterator)模式。迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部表示。迭代器模式支持以不同的方式遍历一个聚合对象,复杂的聚合可 用多种方法来进行遍历;允许在同一个聚合上可以有多个遍历,每个迭代器保持它自己的遍历状 态,因此,可以同时进行多个遍历操作。
C ,B。桥接的抽象和实现分离。
D ,B。答案:A,D。
- (1)逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分, 即类、子系统、包和用例实现的子集。
- (2)进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
- (3)实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模。
- (4)部署视图。部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
- (5)用例视图。用例视图是最基本的需求分析模型。
B,A。
C,B;A,B。答案:C,B;C,A
- 1.实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息,例如,在线教育平台系统可以提取出学员类和课程类,它们都属于实体类。实体类通常都是永久性的,它们所具有的属 性和关系是长期需要的,有时甚至在系统的整个生存期都需要。实体类是对用户来说最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型的转化中,一个参与者一般对应于实体类。通常可以从 SRS 中的那些与数据库表(需要 持久存储)对应的名词着 SRS手来找寻实体类。通常情况下,实体类一定有属性,但不一定有操作。
- 2.控制类 控制类是用于控制用例工作的类,一般是由动宾结构的短语(“动词+名词”或“名词+动词”)转 化来的名词,例如,用例“身份验证”可以对应于一个控制类“身份验证器”,它提供了与身份验证相关的所有操作。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象(控制类 的实例)通常控制其他对象,因此,它们的行为具有协调性。控制类将用例的特有行为进行封装,控制对象的行为与特定用例的实现密切相关,当系统执行用例 的时候,就产生了一个控制对象,控制对象经常在其对应的用例执行完毕后消亡。通常情况下,控 制类没有属性,但一定有方法。
- 3.边界类 边界类用于封装在用例内、外流动的信息或数据流。边界类位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件的接口,以及与其他系统的接口。要寻找和定义边界类,可以检查用例模型,每个参与者和用例交互至少要有一个边界类,边界类使参与者能与系统交互。边界类 是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。常见的边界类有窗口、通信协 议、打印机接口、传感器和终端等。实际上,在系统设计时,产生的报表都可以作为边界类来处 理。边界类用于系统接口与系统外部进行交互,边界对象将系统与其外部环境的变更(例如,与其他系 统的接口的变更、用户需求的变更等)分隔开,使这些变更不会对系统的其他部分造成影响。通常 情况下,边界类可以既有属性也有方法。
装饰模式:动态地给一个对象添加一些额外的职责。它提供了用子类扩展功能的一个灵活的替代, 比派生一个子类更加灵活。在本题中,“现需要构造带有滚动条或者带有黑色边框,或者既有滚动条又有黑色边框的文本显 示控件和图片显示控件”,从此处可以看出需要能为构件灵活附加功能的机制,这与装饰模式的情况是吻合的。这样做比静态继承具有更大的灵活性。