軟件設(shè)計師案例分析當天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設(shè)計師案例分析每日一練試題(2023/8/24)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2023/8/24
點擊查看:更多軟件設(shè)計師習題與指導
軟件設(shè)計師案例分析每日一練試題內(nèi)容(2023/8/24)
閱讀下列說明和Java代碼,將應填入(n)處的字句寫在答題紙的對應欄內(nèi)。
【說明】
某公司的組織結(jié)構(gòu)圖如圖6-1所示,現(xiàn)采用組合(Composition)設(shè)計模式來設(shè)計,得到如圖6-2所示的類圖。
其中Company為抽象類,定義了在組織結(jié)構(gòu)圖上添加(Add)和刪除(Delete)分公司/辦事處或者部門的方法接口。類ConcreteCompany表示具體的分公司或者辦事處,分公司或辦事處下可以設(shè)置不同的部門。類HRDepartment和FinanceDepartment分別表示人力資源部和財務(wù)部。
圖6-1 組織結(jié)構(gòu)圖

圖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("總公司財務(wù)部") );
ConcreteCompany comp =new ConcreteCompany("上海分公司");
comp.Add(new HRDepartment("上海分公司人力資源部") );
comp.Add(new FinanceDepartment("上海分公司財務(wù)部"));
(7);
ConcreteCompany compl = new ConcreteCompany("南京辦事處");
compl.Add(new HRDepartment("南京辦事處人力資源部") );
compl.Add(new Fina.nceDepartment ("南京辦事處財務(wù)部") );
(8); // 其他代碼省略
}
}
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/st/3810217409.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
m.xiexiliangjiufa.com/st/3810217409.html