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