源代碼
package Pattern;interface Tour{ //旅游類 public void visit(); //旅游方式}interface Visit{ public Tour visitStyle();//具體的旅游方式}class GoAbroad implements Tour {//出國旅游 接口的實現(xiàn)類 public void visit(){//實現(xiàn)接口的方法 System.out.PRintln("咱們?nèi)怏H友 吧!"); }}class Hangzhou implements Tour { //杭州旅游 接口的實現(xiàn)類 public void visit(){ System.out.println("杭州風(fēng)景優(yōu)美,咱去那吧!"); }}class Home implements Tour {//在家 接口的實現(xiàn)類 public void visit(){ System.out.println("哎,沒有錢哪也去不了!"); }}class GoAbroadVisit implements Visit {//返回出國旅游對象 調(diào)用實現(xiàn)類的工廠類 public Tour visitStyle(){ return new GoAbroad(); }}class HangZhouVisit implements Visit {//返回杭州旅游對象 調(diào)用實現(xiàn)類的工廠類 public Tour visitStyle(){ return new Hangzhou(); }}class HomeVisit implements Visit {//返回在家對象 調(diào)用實現(xiàn)類的工廠類 public Tour visitStyle(){ return new Home(); }}public class TextMethodFactory { public static void main(String[] args) { try { Visit visit=new HangZhouVisit(); //接口變量引用實現(xiàn)類對象 Tour tour=visit.visitStyle(); //調(diào)用方法返回旅游實例 System.out.println("今年咱們?nèi)ツ膬郝糜窝剑?quot;); tour.visit();//調(diào)用方法獲得旅游方式 } catch (Exception e) { System.out.println("今年旅游計劃取消?"); } finally{ System.out.println(".........."); } }}源程序解讀1.程序中定義兩個接口Tour、Visit,三個接口的實現(xiàn)類GoAbroad、Hangzhou、Home以及三個調(diào)用實現(xiàn)類的工廠類GoAbroadVisit、HangZhouVisit、HomeVisit2.可以看出使用工廠方法模式,使得對象的數(shù)量成倍增長。當旅游對象即接口的實現(xiàn)類非常多時,會出現(xiàn)大量的與之相應(yīng)的工廠對象,這樣成對的增長,又會使得代碼的編寫變得繁雜類似于旅游這種情況,當使用工廠方法模式變得比較繁雜時,可以考慮使用簡單工廠模式
新聞熱點
疑難解答