1. 程式人生 > >JAVA 23種設計設計模式---工廠模式(抽象工廠模式)

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();     }

}

執行結果:

至此,工廠模式已全部結束!!