_082_Java_工廠方法(FactoryMethod)
阿新 • • 發佈:2018-12-10
- 概述:
定義一個用於建立物件的介面,讓子類決定例項化哪一個類。FactoryMethod使一個類的例項化延遲到其子類。
-
適用性:
1. 當一個類不知道它所必須建立的物件的類的時候
2. 當一個類希望由它的子類來指定它所建立的物件的時候
3. 當類將建立物件的職責委託給多個幫助子類中的某一個,並且你希望將哪一個幫助子類是代理者這一資訊區域性化的時候
- 舉例
- 總結
FactoryMethod模式是設計模式中應用最為廣泛的模式,在面向物件的程式設計中,物件的建立工作非常簡單,物件的建立時機卻很重要。FactoryMethod解決的就是這個問題,它通過面向物件的手法,將所要建立的具體物件的建立工作延遲到了子類,從而提供了一種擴充套件的策略,較好的解決了這種緊耦合的關係。
package org.lfz._11_03_FactoryMethod; /*工廠方法*/ public class TestFactoryMethod { public static void main(String[] args) { IWorkFactory a = new StudentWorkFactory(); a.getWork().doWork(); IWorkFactory b = new TeacherWorkFactory(); b.getWork().doWork(); } } interface Work{ void doWork(); } class StudentWork implements Work{ @Override public void doWork() { System.out.println("學生寫作業"); } } class TeacherWork implements Work{ @Override public void doWork() { System.out.println("教師改作業"); } } interface IWorkFactory{ Work getWork(); } class StudentWorkFactory implements IWorkFactory{ @Override public Work getWork() { // TODO Auto-generated method stub return new StudentWork(); } } class TeacherWorkFactory implements IWorkFactory{ @Override public Work getWork() { // TODO Auto-generated method stub return new TeacherWork(); } }
- 執行結果
FactoryMethod模式是設計模式中應用最為廣泛的模式,在面向物件的程式設計中,物件的建立工作非常簡單,物件的建立時機卻很重要。FactoryMethod解決的就是這個問題,它通過面向物件的手法,將所要建立的具體物件的建立工作延遲到了子類,從而提供了一種擴充套件的策略,較好的解決了這種緊耦合的關係。