java工廠模式
工廠模式就是在介面和子類中間加一個過渡段(類),通過這個埠用來獲得繼承了介面的子類的例項化物件。這個過度類就是所謂的工廠類,以後如果需要對程式進行擴充套件的話,直接在工廠類裡面進行改動即可。
工廠模式一般由以下部分組成:
1)抽象工廠角色: 這是工廠方法模式的核心,它與應用程式無關。是具體工廠角色必須實現的介面或者必須繼承的父類。在java中它由抽象類或者介面來實現。 2)具體工廠角色:它含有和具體業務邏輯有關的程式碼。由應用程式呼叫以建立對應的具體產品的物件。 3)抽象產品角色:它是具體產品繼承的父類或者是實現的介面。在java中一般有抽象類或者介面來實現。
4)具體產品角色:具體工廠角色所建立的物件就是此角色的例項。在java中由具體的類來實現。
程式碼:
//抽象產品角色 public interface Moveable { void run(); } //具體產品角色 public class Plane implements Moveable { @Override public void run() { System.out.println("plane...."); } } public class Broom implements Moveable { @Override public void run() { System.out.println("broom....."); } }
//抽象工廠 public abstract class VehicleFactory { abstract Moveable create(); }
//具體工廠 public class PlaneFactory extends VehicleFactory{ public Moveable create() { return new Plane(); } }
public class BroomFactory extends VehicleFactory{ public Moveable create() { return new Broom(); } }
//測試類 public class Test { public static void main(String[] args) { VehicleFactory factory = new BroomFactory(); Moveable m = factory.create(); m.run(); } }