题目详情

生成器(Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。图6-1所示为其类图。

中级软件设计师,历年真题,2018年上半年(下午)《软件设计师》真题

【Java代码】

import java.util.*;

class Product{

private String partA;

private String partB;

public Product(  ){}

public void setPartA(String s){partA=s;}

public void setPartB(String s){partB=s;}

}

interface Builder{

public(1);

public void buildPartB(  );

public(2);

}

class ConcreteBuilder1 implements Builder{

private Product product;

public ConcreteBuilder1(  ){product=new Product(  );}

public void buildPartA(  ){(3)("Component A");}

public void buildPartB(  ){(4)("Component B");}

public Product getResult(  ){return product;}

}

class ConcreteBuilder2 implements Builder{

//代码省略

}

class Director{

private Builder builder;

public Director(Builder builder){this.builder=builder;}

public void construct(  ){

(5);

//代码省略

}

}

class Test{

public static void main(String[]args){

Director director1=new Director(new ConcreteBuilder1(  ));

director1.construct(  );

}

}

正确答案及解析

正确答案
解析

(1)void buildPartA()

(2)Product getResult()

(3)product.setPartA

(4)product.setPartB

(5)builder.buildPartA();

或builder.buildPartB()

本题考查的是面向对象程序设计,是JAVA语言与设计模式的结合考查。本题涉及的设计模式是构建器模式,将复杂类的构造过程推迟到子类实现。

对于第一空、第二空,根据实现接口的类,补充其接口缺失的方法,因此,空(1)和空(2)分别填写void buildPartA()和Product getResult(),二者可以互换;

对于第三空、第四空,是根据product类方法进行的补充,与具体产品的实现保持一致,因此,分别填写,product.setPartA,product.setPartB;

对于第五空,由于在填空后面跟随的是代码省略,因此题目并不严谨,缺失的语句可以有builder.buildPartA();builder.buildPartB()。

包含此试题的试卷

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)P(S2)和V(S3)
  • B.P(S1)V(S2)和V(S3)
  • C.V(S1)V(S2)和V(S3)
  • D.P(S1)P(S2)和V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S4)和V(S4)V(S5)
  • B.V(S5)和P(S4)P(S5)
  • C.V(S3)和V(S4)V(S5)
  • D.P(S3)和P(S4)V(P5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S3)和V(S4)V(S5)
  • B.V(S3)和P(S4)P(S5)
  • C.P(S3)和P(S4)P(S5)
  • D.V(S3)和V(S4)V(S5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案

相关题库更多 +