【Unity 题型】设计模式

知识内容:Unity
更新日期:2021/7/27

创造型

答案:DDCBD ACCC


1. 在用C#描述设计模式中,下面___内容不属于抽象工厂模式

A. 抽象产品
B. 具体工厂
C. 具体产品
D. 抽象接口

答案解析:

  • 抽象工厂包括:抽象产品、具体产品、具体工厂

2. 在C#下开发的应用程序中,抽象工厂设计模式中参与的对象为

A. 抽象接口
B. 具体工程
C. 具体产品
D. 以上全部

答案解析:

  • 抽象工厂设计模式:抽象产品、具体产品、具体工厂
  • 抽象工厂接口:包含所有产品创建的抽象方法
    在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它只需要改变具体工厂即可使用不同的产品配置。抽象工厂让具体的创建实例过程与客户端分离,客户端是通过他们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出现在客户代码中【待理解】

3. 在C#中,如果需要提供在多种数据库间无缝移植的功能,应当采用___设计模式

A. 面向数据库
B. 面向过程
C. 抽象工厂
D. 具体工程

答案解析:

  • 抽象工厂:应用于多数据库编程中,规范与简化系统结构,提高系统的可重用性与可扩展性,较好满足面向对象设计原则要求。

4. 在C#语言中, 以下关于简单工厂设计模式的描述中错误的是

A. 使用简单工厂设计模式调用者无需知道创建哪个子类对象
B. 简单工厂设计模式中创建对象的方法所返回类型是子类类型
C. 简单工厂设计模式可以创建不同的子类产品,然后作为父类产品返回
D. 使用简单工厂设计简化了系统的维护

答案解析:

  • 使用简单工厂设计模式调用者无需知道创建了哪个子类对象,简单工厂设计模式中创建对象的方法返回类型是父类类型,简单工厂设计模式可以创建不同的子类产品,然后作为父类产品返回,使用简单工厂设计简化了系统的维护【待理解】

5. 在C#中,下列关于设计模式的叙述中不正确的是

A. 每一模式描述一个我们周围不断重复发生的问题以及该问题的解决方案
B. 设计模式描述软件开发过程中某一类常见问题的一般解决方案
C. 面向对象的设计模式是在特定场景下,解决一般设计问题中类与相互通信的对象的描述
D. 抽象工厂是一种设计模式,而简单工厂不是一种设计模式

答案解析:

  • 面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。
    目前总结的设计模式有23中使用广泛,其中就包含简单工厂和抽象工厂。【待理解】

6. 在C#语言开发的程序中,以下关于简单工厂设计模式的描述中错误的是

A. 简单工厂设计模式中创建对象的方法返回类型可以为任意类
B. 简单工程模式方便维护,可实现代码复用
C. 使用简单工厂模式可以在调用者不知道对象属于哪个子类的情况下,创建不同对象
D. 简单工厂模式中创建对象的返回类型为父类

答案解析:

  • 使用简单工厂设计模式调用者无需知道创建了那个子类对象
  • 简单工厂设计模式中创建对象的方法返回类型是父类类型
  • 简单工厂设计模式可以创建不同的子类产品,然后作为父类产品返回,使用简单工厂设计简化了系统的维护。【待理解】

7. 使用C#开发程序,下面的代码实现了设计模式中的___模式

public class Bicycle: Vehicle {... ...}
public class Car: Vehicle {... ...}

public Vehicle BulidVehicle(int) {
	Vehicle v = new Vehicle();
  	......
  	switch(type) {
    	case "slow":
    		v = new Bicycle(speed);
    		break;
   		......
  	}
  	return v;
}  

A. 继承
B. 抽象工厂
C. 简单工厂
D. 封装

答案解析:

  • 因为以上BulidVehicle()代码是实现对象的创建功能的,而且是在多种类型中选择一种创建。这符合简单工厂的多选一创建对象的需求。

8. 在C#语言开发的程序中,下面的代码实现了设计模式中的___模式

public class Student:Person {......}
public class Teacher:Person {......}
  
public Person CreatPerson(string name,int age) {
	Person p = new Person();
    ......
    switch(type) {
		case "s":
            p = new Student(name,age); 
            break;
        case "t":
            p = new Student(name,age);
            break;
        default:
            p = null;
            break;
   }
   return p;
}

A. 继承
B. 封装
C. 简单工厂
D. 抽象工厂

答案解析:

  • 定义一个全局的工厂类,负责类型的选择及对象的创建初始化,从而实现将创建与表示分离, 当一个类不知道它所必须创建的对象的类的时候。
    当类将创建对象的职责委托给一个全局创建点,客户不需要关心具体类型,需要对象的时候,找全局创建点即可。

9. 下面的代码实现了设计模式中的___模式

public class A 
{  
	private A instance;  	
	private A() { }   
	public static A Instance
	{ 
		get 
		{  
			if ( A == null )  
				A = new A();  
				
			return instance;
		}  
	}  
}   

A. Factory
B. Abstract Factory
C. Singleton
D. Builder

答案解析:

  • Factory为工厂模式,Abstract Factory为抽象工厂模式,Singleton为单例模式,Builder为建造者模式。题中代码目的是使得类的一个对象成为系统中的唯一实例,所以是单例模式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值