网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
假设现在要创建一个简单的超市销售系统,顾客将毛巾、饼干、酸奶等物品(Item)加入购物车(Shopping_Cart),在收银台(Checkout)人工(Manual)或自动(Auto)地将购物车中每个物品的价格汇总到总价格后结帐。这一业务需求的类图(方法略)设计如下图所示,采用了( )模式。其中(请作答此空)定义以一个Checkout对象为参数的accept操作,由子类实现此accept操作。此模式为( ),适用于( )。
A.Item
B.Shopping_Cart
C.Checkout
D.Manual和Auto
B.Shopping_Cart
C.Checkout
D.Manual和Auto
参考答案
参考解析
解析:访问者模式包含如下角色:Vistor :抽象访问者ConcreteVisitor:具体访问者Element: 抽象元素ConcreteElement:具体元素ObjectStructure:对象结构
更多 “假设现在要创建一个简单的超市销售系统,顾客将毛巾、饼干、酸奶等物品(Item)加入购物车(Shopping_Cart),在收银台(Checkout)人工(Manual)或自动(Auto)地将购物车中每个物品的价格汇总到总价格后结帐。这一业务需求的类图(方法略)设计如下图所示,采用了( )模式。其中(请作答此空)定义以一个Checkout对象为参数的accept操作,由子类实现此accept操作。此模式为( ),适用于( )。 A.Item B.Shopping_Cart C.Checkout D.Manual和Auto ” 相关考题
考题
下列关于单例设计模式的描述中,正确的是()
A、将一个类设计为单例设计模式,在其他类中可以创建这个类对象B、将一个类设计为单例设计模式,必须私有其空参数构造方法,并且还不能定义有参数的构造方法C、将一个类设计为单例设计模式,需要定义一个静态的成员方法将本类创建的对象返回给调D、以上答案都不对
考题
在面向对象分析和设计中,用类图给出系统的静态设计视图,其应用场合不包括(请作答此空)。下图是一个UML类图,其中类University和类School之间是( )关系,类Person和类PersonRecord之间是( )关系,表示Person与Person Record( )。
A.对系统的词汇建模
B.对简单的协作建模
C.对逻辑数据库模式建模
D.对系统的需求建模
考题
假设现在要创建一个简单的超市销售系统,顾客将毛巾、饼干、酸奶等物品(Item)加入购物车(Shopping_Cart),在收银台(Checkout)人工(Manual)或自动(Auto)地将购物车中每个物品的价格汇总到总价格后结帐。这一业务需求的类图(方法略)设计如下图所示,采用了(请作答此空)模式。其中( )定义以一个Checkout对象为参数的accept操作,由子类实现此accept操作。此模式为( ),适用于( )。
A.观察者(Observer)
B.访问者(Visitor)
C.策略(Strategy)
D.桥接器(Bridge)
考题
假设现在要创建一个简单的超市销售系统,顾客将毛巾、饼干、酸奶等物品(Item)加入购物车(Shopping_Cart),在收银台(Checkout)人工(Manual)或自动(Auto)地将购物车中每个物品的价格汇总到总价格后结帐。这一业务需求的类图(方法略)设计如下图所示,采用了( )模式。其中( )定义以一个Checkout对象为参数的accept操作,由子类实现此accept操作。此模式为( ),适用于(请作答此空)。
A.必须保存一个对象在某一个时刻的(部分)状态
B.想在不明确指定接收者的情况下向多个对象中的一个提交一个请求
C.需要对一个对象结构中的对象进行很多不同的并且不相关的操作
D.在不同的时刻指定、排列和执行请求
考题
第五题 阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
以下Java代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物件 (Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账。设计如图5-1所示类图。
问题:5.1 【Java代码】
interface Item{
public void accept(Visitor visitor);
public double getPrice();
}
class Book (1){
private double price;
public Book(double price){(2);}
public void accept(Visitor visitor){ //访问本元素
(3);
}
public double getPrice() {
return price;
}
}
//其它物品类略
interface Visitor {
public void visit(Book book);
//其它物品的visit方法
}
class Cashier(4){
private double totalForCart;
//访问Book类型对象的价格并累加
(5){
//假设Book类型的物品价格超过10元打8折
if(book.getPrice() totalForCart+=book.getPrice();
} else
totalForCart+=book.getPrice()*0.8;
}
//其它visit方法和折扣策略类似,此处略
public double getTotal() {
return totalForCart;
}
}
class ShoppingCart {
//normal shopping cart stuff
private java.util.ArrayListitems=new java.util.ArrayList<>();
public double calculatePrice() {
Cashier visitor=new Cashier();
for(Item item:items) {
(6);
}
double total=visitor.getTotal();
return total;
}
public void add(Item e) {
this.items.add(e);
}
}
考题
下图所示为 ( ) 设计模式,适用于 (请作答此空) 。
A.有多个对象可以处理一个请求,在运行时刻自动确定由哪个对象处理
B.想使用一个已经存在的类,而其接口不符合要求
C.类的抽象和其实现之间不希望有一个固定的绑定关系
D.需要为一个复杂子系统提供一个简单接口
考题
自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零:交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用( )模式设计实现,其类图如下图所示,其中( )是客户程序使用的主要接口,可用状态来对其进行配置。此模式为(请作答此空),体现的最主要的意图是( )。
A创建型对象模式
B结构型对象模式
C行为型类模式
D行为型对象模式
考题
假设现在要创建一个简单的超市销售系统,顾客将毛巾、饼干、酸奶等物品(Item)加入购物车(Shopping_Cart),在收银台(Checkout)人工(Manual)或自动(Auto)地将购物车中每个物品的价格汇总到总价格后结帐。这一业务需求的类图(方法略)设计如下图所示,采用了( )模式。其中( )定义以一个Checkout对象为参数的accept操作,由子类实现此accept操作。此模式为(请作答此空),适用于( )。
A.创建型对象模式
B.结构型对象模式
C.行为型类模式
D.行为型对象模式
考题
下图所示为 ( ) 设计模式,适用于 (请作答此空) 。
A.一个系统要由多个产品系列中的一个来配置时
B.当一个类希望由它的子类来指定它所创建的对象时
C.当创建复杂对象的算法应该独立于该对象的组成部分及其装配方式时
D.当一个系统应该独立于它的产品创建、构成和表示时
考题
第六题 阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明 】
以下C++代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物品(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账,设计如图6-1所示类图。
using namespace std;
class Book;
class Visitor {
public:
virtual void visit(Book* book)=0;
//其它物品的visit方法
};
class Item {
public:virtual void accept(Visitor* visitor)=0;
virtual double getPrice()=0;
};
class Book (1){
private: double price;
public:
Book (double price){ //访问本元素
(2);
}
void accept(Visitor* visitor) {
(3);
}
double getPrice() { return price; }
};
class Cashier(4){
private;
double totalForCart;
public:
//访问Book类型对象的价格并累加
(5){
//假设Book类型的物品价格超过10元打8折
if(book->getPrice() totalForCart+=book->getPrice();
} else
totalForCart+=book->getPrice()*0.8;
}
//其它visit方法和折扣策略类似,此处略
double getTotal() {
return totalForCart;
}
};
class ShoppingCart {
private:
vectoritems;
public:
double calculatePrice() {
Cashier* visitor=new Cashier();
for(int i=0;i (6);
}
double total=visitor->getTotal();
return total;
}
void add(Item*e) {
items.push_back(e);
}
};
考题
下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,ConcreteCommand和Command之间是( )关系,Invoker和Command之间是( )关系。
A.将一个请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化,队请求排队或记录请求日志,以及支持可撤销的操作
B.将一个类的接口适配成用户所期待的
C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
D.为一个对象提供代理以控制该对象的访问
考题
下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,Abstraction和RefinedAbstraciton之间是( )关系,Abstraction和Implementor之间是( )关系。
A.将一个类的接口转换为客户期望的另一种接口,使得原本不匹配的接口而无法合作的类可以一起工作
B.将一个抽象与其实现分离开,以便两者能够各自独立地演变
C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
D.为一个对象提供代理以控制该对象的访问
考题
假设现在要创建一个 Web应用框架,基于此框架能够创建不同的具体 Web应用,比如博客、 新闻网站和网上商店等;并可以为每个 Web 应用创建不同的主题样式,如浅色或深色等。这一 业务需求的类图设计适合采用(如下图所示)模式( )。其中( )是客户程序使用的 主要接口,维护对主题类型的引用。此模式为( ),体现的最主要的意图是(请作答此空)。
A.将抽象部分与其实现部分分离,使它们都可以独立地变化
B.动态地给一个对象添加一些额外的职责
C.为其他对象提供一种代理以控制对这个对象的访问
D.将一个类的接口转换成客户希望的另外一个接口。
考题
阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
以下C++代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物品(Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账,设计如图6-1所示类图。
【C++代码】
using namespace std;class Book;class Visitor {public: virtual void visit(Book* book)=0; //其它物品visit方法}; class Item {public:virtual void accept(Visitor* visitor)=0; virtual doublegetPrice()=0;};class Book (1){private: double price;public: Book (double price){ //访问本元素 (2); } void accept(Visitor* visitor) { (3); }double getPrice(){ returnprice; }};class Cashier(4){private; double totalForCart;public: //访问Book类型对象的价格并累加 (5){ //假设Book类型的物品价格超过10元打8折 if(book->getPrice()getPrice(); } else totalForCart+=book->getPrice()*0.8; } //其它visit方法和折扣策略类似,此处略 double getTotal() { return totalForCart; }};class ShoppingCart {private: vectoritems;public: double calculatePrice() { Cashier* visitor=new Cashier(); for(int i=0;i getTotal(); return total; } void add(Item*e) { items.push_back(e); }};
考题
阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
以下Java代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物件 (Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账。设计如图5-1所示类图。
【Java代码】
interface Item{ public void accept(Visitor visitor); public double getPrice();}class Book (1){ private double price; public Book(double price){(2);} public void accept(Visitor visitor){ //访问本元素 (3); } public double getPrice() { return price; }}//其它物品类略 interface Visitor { public void visit(Book book); //其它物品的visit方法 } class Cashier(4){ private double totalForCart; //访问Book类型对象的价格并累加 (5){ //假设Book类型的物品价格超过10元打8折 if(book.getPrice()(); public double calculatePrice() { Cashier visitor=newCashier(); for(Item item:items) { (6); } doubletotal=visitor.getTotal(); return total; } public void add(Item e) { this.items.add(e); }}
考题
假设现在要创建一个 Web应用框架,基于此框架能够创建不同的具体 Web应用,比如博客、 新闻网站和网上商店等;并可以为每个 Web 应用创建不同的主题样式,如浅色或深色等。这一 业务需求的类图设计适合采用(如下图所示)模式( )。其中( 请作答此空)是客户程序使用的 主要接口,维护对主题类型的引用。此模式为( ),体现的最主要的意图是( )。
A.Webapplication
B.Blog
C.Theme
D.Light
考题
下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,ConcreteStrategy和Strategy之间是( )关系,Strategy和Context之间是( )关系。
A.将一个类的接口转换为客户期望的另一种接口,使得原本不匹配的接口而无法合作的类可以一起工作
B.定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
D.为一个对象提供代理以控制该对象的访问
考题
假设现在要创建一个 Web应用框架,基于此框架能够创建不同的具体 Web应用,比如博客、 新闻网站和网上商店等;并可以为每个 Web 应用创建不同的主题样式,如浅色或深色等。这一 业务需求的类图设计适合采用(请作答此空)模式(如下图所示)。其中( )是客户程序使用的 主要接口,维护对主题类型的引用。此模式为( ),体现的最主要的意图是( )。
A.观察者(Observer)
B.访问者(Visitor)
C.策略(Strategy)
D.桥接(Bridge)
考题
下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,Decorator和Component之间是( )关系,ConcreteDecorator和Decorator之间是( )关系。
A.将一个类的接口转换为客户期望的另一种接口,使得原本因接口不匹配而无法合作的类可以一起工作
B.将一个抽象与其实现分离开,以便两者能够各自独立地演变
C.为一个对象提供代理以控制该对象的访问
D.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
考题
假设现在要创建一个 Web应用框架,基于此框架能够创建不同的具体 Web应用,比如博客、 新闻网站和网上商店等;并可以为每个 Web 应用创建不同的主题样式,如浅色或深色等。这一 业务需求的类图设计适合采用(如下图所示)模式( )。其中( )是客户程序使用的 主要接口,维护对主题类型的引用。此模式为(请作答此空),体现的最主要的意图是( )。
A.创建型对象模式
B.结构型对象模式
C.行为型类模式
D.行为型对象模式
考题
欲开放一个绘图软件,要求使用不同的绘图程序绘制不同的图形,该绘图软件的扩展性要求将不断扩充新的图形和新的绘图程序,以绘制直线和图形为例,得到如下图所示的类图,该设计采用( )模式将抽象部分与其实现部分分离,使它们都可以独立的变化。其中( )定义了实现类接口,该模式适用于( )的情况,该模式属于(请作答此空)模式。
A.创建型对象
B.结构型对象
C.行为型对象
D.结构类型
考题
设计模式中的( )模式将对象组合成树形结构以表示"部分一整体"的层次结构,使得客户对单个对象和组合对象的使用具有一致性。下图为该模式的类图,其中,( )定义有子部件的那些部件的行为;组合部件的对象由(请作答此空)通过component提供的接口操作。A.Client
B.Component
C.Leaf
D.Composite
考题
( )设计模式能够动态地给一个对象添加一些额外的职责而无须修改此对象的结构;( )设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类;欲使一个后端数据模型能够被多个前端用户界面连接,采用(请作答此空)模式最适合。A. 装饰器
B. 享元
C. 观察者
D. 中介者
考题
( )设计模式能够动态地给一个对象添加一些额外的职责而无须修改此对象的结构;(请作答此空)设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类;欲使一个后端数据模型能够被多个前端用户界面连接,采用()模式最适合。A. 工厂方法
B. 享元
C. 观察者
D. 中介者
考题
(请作答此空)设计模式能够动态地给一个对象添加一些额外的职责而无须修改此对象的结构;()设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类;欲使一个后端数据模型能够被多个前端用户界面连接,采用()模式最适合。A. 组合
B. 外观
C. 享元
D. 装饰器
考题
单选题购物车设计:顾客在超市中将选择的商品,如苹果、图书等放在购物车中,然后到收银员处付款。在购物过程中,顾客需要对这些商品进行访问,以便确认这些商品的质量,之后收银员计算价格时也需要访问购物车内顾客所选择的商品。购物车设计可以使用()来设计该购物过程。A
工厂方法模式B
访问者模式C
模板方法模式D
责任链
热门标签
最新试卷