軟件設計師案例分析當天每日一練試題地址:www.jazzmuze.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:www.jazzmuze.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2023/8/24)在線測試:www.jazzmuze.com/exam/ExamDayAL.aspx?t1=4&day=2023/8/24
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2023/8/24)
閱讀下列說明和Java代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
某公司的組織結構圖如圖6-1所示,現(xiàn)采用組合(Composition)設計模式來設計,得到如圖6-2所示的類圖。
其中Company為抽象類,定義了在組織結構圖上添加(Add)和刪除(Delete)分公司/辦事處或者部門的方法接口。類ConcreteCompany表示具體的分公司或者辦事處,分公司或辦事處下可以設置不同的部門。類HRDepartment和FinanceDepartment分別表示人力資源部和財務部。
	圖6-1  組織結構圖
	
	圖6-2  類圖
【Java代碼】
import java.util.*;
(1)Company {
protectedString    name;
public Company(String name) { (2)= name; }
public abstract  void Add(Company  c); //增加子公司、辦尊處或部門
public abstract  void Delete(Company  c);    //刪除子公司、辦事處或部門
}
class  ConcreteCompany  extends  Company {
private List<(3)> children = new ArrayList<(4)>();
//存儲子公司、辦事處或部門
public  ConcreteCompany(String  name)  {  super(name); }
public  void  Add(Company c)   {  (5).add(c);    }
public  void  Delete(Company  c)   {(6).remove(c);    }
}
class HRDepartment extends Company {
public  HRDepartment(String  name)  { super(name);  }
//其他代碼省略
}
class  FinanceDepartment   extends  Company   {
public  FinanceDepartment(String  name)   { super(name); }
//其他代碼省略
}
public  class  Test  {
public  static void  main(String[]  args)   {
ConcreteCompany root =new ConcreteCompany("北京總公司");
root.Add(new HRDepartment("總公司人力資源部") );
root.Add(new FinanceDepartment("總公司財務部") );
ConcreteCompany comp =new ConcreteCompany("上海分公司");
comp.Add(new HRDepartment("上海分公司人力資源部") );
comp.Add(new FinanceDepartment("上海分公司財務部"));
(7);
ConcreteCompany  compl  =  new ConcreteCompany("南京辦事處"); 
compl.Add(new HRDepartment("南京辦事處人力資源部") );
compl.Add(new Fina.nceDepartment ("南京辦事處財務部") );
(8);    // 其他代碼省略
}
}
信管網試題答案與解析:www.jazzmuze.com/st/3810217409.html
信管網考友試題答案分享:
信管網試題答案與解析:
www.jazzmuze.com/st/3810217409.html