設計模式 抽象工廠模式

2022-10-06 20:51:21 字數 4017 閱讀 8358

目錄抽象工廠模式

總結原始碼

假設乙個手機軟體初始化的應用場景,該軟體支援iosandroidwindows等多個作業系統平台,針對不同的作業系統,該軟體提供了不同的操作功能(operation)類和操作介面(su***ce)類,並提供相應的工廠類來封裝這些類的初始化過程。軟體要求具有較好的擴充套件性以支援新的作業系統平台

* @description 操作功能抽象類

*/public abstract class operation

/**

* @description android操作功能產品類

*/public class androidoperation extends operation

}

/**

* @description ios操作功能產品類

*/public class iosoperation extends operation

}

/**

* @description 操作功能工廠類(工廠方法模式)

*/public inte***ce operationfactory

/**

* @description android操作功能工廠類

*/public class androidoperationfactory implements operationfactory

}

/**

* @description ios操作功能工廠類

*/public class iosoperationfactory implements operationfactory

}

/**

* @description 工廠方法模式測試類

*/public class test

}

初始化android操作功能

初始化ios操作功能

/**

* @description 操作功能抽象類

*/public abstract class operation

/**

* @description android操作功能產品類

*/public class androidoperation extends operation

}

/**

* @description ios操作功能產品類

*/public class iosoperation extends operation

}

/**

* @description 操作介面抽象類

*/public abstract class su***ce

/**

* @description android操作介面產品類

*/public class androidsu***ce extends su***ce

}

/**

* @description ios操作介面產品類

*/public class iossu***ce extends su***ce

}

/**

* @description 初始化工廠介面:抽象工廠

*/public inte***ce initfactory

/**

* @description android初始化工廠:具體工廠類

*/public class androidinitfactory implements initfactory

@override

public su***ce getsu***ce()

}

/**

* @description ios初始化工廠:具體工廠類

*/public class iosinitfactory implements initfactory

@override

public su***ce getsu***ce()

}

/**

* @description 抽象工廠測試類

* @author coisini

* @date mar 4, 2022

* @version 1.0

*/public class test

}

初始化android操作功能

初始化android操作介面

初始化ios操作功能

初始化ios操作介面

/** * @description properties工具類

* @author coisini

* @date feb 28, 2022

* @version 1.0

*/public class propertiesutil catch (ioexception e)

return value;

}/**

* 根據配置檔案提取類名返回例項物件

* @param filepath

* @param keyword

* @param packagepath

* @return

*/private static object getbean(string filepath, string keyword, string packagepath) catch (exception e)

}/**

* 獲取抽象工廠例項物件

* @return

*/public static object getabstractfactorybean()

}

/**

* @description 抽象工廠測試類

*/public class test

}

1、具體產品在應用層**隔離,無需關心建立細節

2、將乙個系列的產品族統一到一起建立

1、規定了所有可能被建立的產品集合,產品族中擴充套件新的產品困難,需要修改抽象工廠的介面

2、增加了系統的抽象性和理解難度

1、客戶端(應用層)不依賴於產品類例項如何被建立、實現等細節

2、強調一系列相關的產品物件(屬於同一產品族)一起使用建立物件需要大量重複的**

3、提供乙個產品類的庫,所有的產品以同樣的介面出現,從而使客戶端不依賴於具體實現

- end -

- 個人學習筆記 -

設計模式 工廠模式 抽象工廠模式

建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...

抽象工廠模式 常用設計模式 抽象工廠模式

提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。在工廠方法模式中,我們的具體建立者每次使用都只能建立乙個同型別的物件,假如我們現在需要的是多個不同型別的物件,工廠方法就滿足不了需求了。這時我們可以把多個工廠方法組合到乙個類,這就是抽象工廠模式,它就是專門用來建立多個產品,也可以說...

抽象工廠模式 設計模式(九) 抽象工廠模式

提供乙個為建立一組相關或相互依賴物件的介面,且無須指定它們的具體類。它屬於建立型模式。在抽象工廠模式中,每個具體工廠都提供了多個用於建立多種不同型別具體物件的方法,這些不同型別的物件都存在乙個共同的屬性,構成乙個族。上篇文章設計模式 八 工廠方法模式說到工廠方法模式中只考慮某一類產品的生產,例如可樂...