爲什麼要使用橋接模式?
橋接模式即是將抽象部分與它的實現(功能)部分分離,使它們都可以獨立地變化,抽象與實現分離,所以擴展能力強;
但是缺點是由於聚合關係建立在抽象層,要求開發者針對抽象化進行設計與編程,這增加了系統的理解與設計難度;
橋接(Bridge)模式包含以下主要角色。
抽象化(Abstraction)角色:定義抽象類,幷包含一個對實現化對象的引用。
擴展抽象化(Refined Abstraction)角色:是抽象化角色的子類,實現父類中的業務方法,並通過組合關係調用實現化角色中的業務方法。
實現化(Implementor)角色:定義實現化角色的接口,供擴展抽象化角色調用。
具體實現化(Concrete Implementor)角色:給出實現化角色接口的具體實現。
抽象化角色:
public abstract class AbstractService {
protected SchoolWork schoolWork;
public StudentService(SchoolWork schoolWork){
this.schoolWork=schoolWork;
}
public abstract String sendSchoolWork(SchoolWork schoolWork);
}
擴展抽象化:學生
@Service("studentService")
public class