在某招聘系统中,要求实现求职简历自动生成功能。简历的基本内容包括求职xx的姓名、性别、年龄及工作经历等。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。针对此需求,设计如下所示类图。该设计采用了 ( 1 ) ,由 xx实例指定创建对象的种类,声明一个复制自身的接口,并且通过复制这些 Resume xx WorkExperience 的对象来创建新的对象。该模式属于 ( 2 ) 模式。问题1
选项A单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。系统中只有一个对象可以节约系统资源开销,如我们计算机只需要一个资源管理器。选项B抽象工厂提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式的优点是方便创建一系列的对象,其使用场景也是创建系列对象的情况。该模式可用于数据持久层的设计比如,可以针对oracle,mysql,sqlserver分别抽象建立抽象工厂,若指定当前工厂为oracle工厂,则创建出来的数据库连接,数据集等一系列对象都是符合oracle操作要求的,这样便于数据库之间的切换。选项C生成器模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。例如,快餐店的工作餐都是主食+小食+饮料,餐食的内容可以不同,但构造过程差别不大。选项D原型模式可以使用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。当系统中存在大量相同、相似的对象的时候,利用构造函数来创建实例,比较耗费资源。Prototype类中包括一个clone方法,客户端调用其拷贝方法clone即可得到实例,不需要手工去创建实例。就好像美猴王拔下猴毛一吹,就能变出很多美猴王。根据题干给的类图明显标注了原型模式中的clone方法,因此本题选择D。