JAVA 23種設計設計模式---工廠模式(抽象工廠模式)
抽象工廠模式統稱為工廠模式,一搬說工廠模式時都指的是抽象工廠模式。
介紹如下:
案列結構:
程式碼結構:
轎車:
package com.zxf.absfactory; //轎車抽象 public interface Sedan { //啟動轎車的方法 public void run();
}
卡車:
package com.zxf.absfactory; //卡車抽象 public interface Trunk_A { //啟動卡車的方法 public void run();
}
工廠:
package com.zxf.absfactory; //抽象工廠 public interface CarFactory { //生產卡車 public Trunk_A produceTrunk(); //生產轎車 public Sedan produceSedan();
}
寶馬工廠:
package com.zxf.absfactory; //生產寶馬品牌的車 public class BmwFactory implements CarFactory {
@Override public Trunk_A produceTrunk() { // TODO Auto-generated method stub return new BmwTrunk(); }
@Override public Sedan produceSedan() { // TODO Auto-generated method stub return new BmwSedan(); }
}
寶馬轎車:
package com.zxf.absfactory;
public class BmwSedan implements Sedan {
@Override public void run() { // TODO Auto-generated method stub System.out.println("寶馬轎車啟動!"); } }
寶馬卡車:
package com.zxf.absfactory;
public class BmwTrunk implements Trunk_A {
@Override public void run() { // TODO Auto-generated method stub System.out.println("寶馬卡車啟動!");
}
}
奧迪工廠:
package com.zxf.absfactory; //生產奧迪品牌的車 public class AodiFactory implements CarFactory {
@Override public Trunk_A produceTrunk() { // TODO Auto-generated method stub return new AodiTrunk(); }
@Override public Sedan produceSedan() { // TODO Auto-generated method stub return new AodiSedan(); }
}
奧迪轎車:
package com.zxf.absfactory;
public class AodiSedan implements Sedan {
@Override public void run() { // TODO Auto-generated method stub System.out.println("奧迪轎車啟動!");
}
}
奧迪卡車:
package com.zxf.absfactory;
public class AodiTrunk implements Trunk_A {
@Override public void run() { // TODO Auto-generated method stub System.out.println("奧迪卡車啟動!");
}
}
顧客(測試類):
package com.zxf.absfactory;
public class Customer { public static void main(String[] args) { //寶馬 CarFactory bm = new BmwFactory(); bm.produceSedan().run(); bm.produceTrunk().run(); //奧迪 AodiFactory ad = new AodiFactory(); ad.produceSedan().run(); ad.produceTrunk().run(); }
}
執行結果:
至此,工廠模式已全部結束!!