源代碼
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.可以看出使用工廠方法模式,使得對象的數量成倍增長。當旅游對象即接口的實現類非常多時,會出現大量的與之相應的工廠對象,這樣成對的增長,又會使得代碼的編寫變得繁雜類似于旅游這種情況,當使用工廠方法模式變得比較繁雜時,可以考慮使用簡單工廠模式
新聞熱點
疑難解答