程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java應用設計形式中的工場辦法形式實例解析

Java應用設計形式中的工場辦法形式實例解析

編輯:關於JAVA

Java應用設計形式中的工場辦法形式實例解析。本站提示廣大學習愛好者:(Java應用設計形式中的工場辦法形式實例解析)文章只能為提供參考,不一定能成為您想要的結果。以下是Java應用設計形式中的工場辦法形式實例解析正文


工場辦法形式的界說
工場辦法(Factory Method)形式的意義是界說一個創立產物對象的工場接口,將現實創立任務推延到子類傍邊。焦點工場類不再擔任產物的創立,如許焦點類成為一個籠統工場腳色,僅擔任詳細工場子類必需完成的接口,如許進一步籠統化的利益是使得工場辦法形式可使體系在不修正詳細工場腳色的情形下引進新的產物。
它包括了以下腳色:

  • 籠統產物(Product)
  • 詳細產物(ConcreteProduct)
  • 籠統工場(Factory)
  • 詳細工場(ConcreteFactory)

形式的UML類圖

實例
假定有三個筆心,分離是紅筆心、藍筆心和黑筆心。用戶願望經由過程圓珠筆來明白筆心的色彩。
形式的構造的描寫與應用
1.籠統產物(Product): PenCore.java

public abstract class PenCore{
  String color;
  public abstract void writeWord(String s);
}

2.詳細產物(ConcreteProduct)_1 : RedPenCore.java

public class RedPenCore extends PenCore{
  RedPenCore(){
   color="白色";
  }
  public void writeWord(String s){
    System.out.println("寫出"+color+"的字:"+s);
  }
}

詳細產物(ConcreteProduct)_2 : BluePenCore.java

public class BluePenCore extends PenCore{
  BluePenCore(){
   color="藍色";
  }
  public void writeWord(String s){
    System.out.println("寫出"+color+"的字:"+s);
  }
}

詳細產物(ConcreteProduct)_3: BlackPenCore.java

public class BlackPenCore extends PenCore{
  BlackPenCore(){
   color="黑色";
  }
  public void writeWord(String s){
    System.out.println("寫出"+color+"的字:"+s);
  }
}

3.結構者(Creator): BallPen.java

public abstract class BallPen{
  BallPen(){
    System.out.println("臨盆了一只裝有"+getPenCore().color+"筆心的圓珠筆");
  }
  public abstract PenCore getPenCore(); //工場辦法
}

4.詳細結構者(ConcreteCreator):

RedBallPen.java
public class RedBallPen extends BallPen{
  public PenCore getPenCore(){
    return new RedPenCore();
  }
}
BlueBallPen.java
public class BlueBallPen extends BallPen{
  public PenCore getPenCore(){
    return new BluePenCore();
  }
}
BlackBallPen.java
public class BlackBallPen extends BallPen{
  public PenCore getPenCore(){
    return new BlackPenCore();
  }
}

5.運用 Application.java

public class Application{
  public static void main(String args[]){
    PenCore penCore;
    BallPen ballPen=new BlueBallPen();
    penCore=ballPen.getPenCore();
    penCore.writeWord("你好,很愉快熟悉你");
    ballPen=new RedBallPen();
    penCore=ballPen.getPenCore();
    penCore.writeWord("How are you");
    ballPen=new BlackBallPen();
    penCore=ballPen.getPenCore();
    penCore.writeWord("nice to meet you");
  }
} 

總結
工場辦法形式屬於類創立型形式。在工場辦法形式中,工場父類擔任界說創立產物對象的公共接口,而工場子類則擔任生成詳細的產物對象,如許做的目標是將產物類的實例化操作延遲到工場子類中完成,即經由過程工場子類來肯定畢竟應當實例化哪個詳細產物類。
工場辦法形式是簡略工場形式的進一步籠統和推行。因為應用了面向對象的多態性,工場辦法形式堅持了簡略工場形式的長處,並且戰勝了它的缺陷。在工場辦法形式中,焦點的工場類不再擔任一切產物的創立,而是將詳細創立任務交給子類去做。這個焦點類僅僅擔任給出詳細工場必需完成的接口,而不擔任產物類被實例化這類細節,這使得工場辦法形式可以許可體系在不修正工場腳色的情形下引進新產物
工場辦法形式的重要長處是增長新的產物類時不必修正現有體系,並封裝了產物對象的創立細節,體系具有優越的靈巧性和可擴大性;其缺陷在於增長新產物的同時須要增長新的工場,招致體系類的個數成對增長,在必定水平上增長了體系的龐雜性

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved