package Create.b.FactoryMethod; //業務接口 public interface Salary { void calcSalary(); }
package Create.b.FactoryMethod; //業務實現類 public class HeBeiSalary implements Salary { @Override public void calcSalary() { // TODO Auto-generated method stub System.out.println("開始計算河北子公司的薪資!"); } }
package Create.b.FactoryMethod; //業務實現類 public class GuangDongSalary implements Salary { @Override public void calcSalary() { // TODO Auto-generated method stub System.out.println("開始計算廣東子公司的薪資!"); } }
package Create.b.FactoryMethod; //工廠接口 public interface Factory { Salary createSalary(); }
package Create.b.FactoryMethod; //業務實現類工廠類 public class HeBeiFactory implements Factory { @Override public Salary createSalary() { // TODO Auto-generated method stub return new HeBeiSalary(); } }
package Create.b.FactoryMethod; //業務實現類工廠類 public class GuangDongFactory implements Factory{ @Override public Salary createSalary() { // TODO Auto-generated method stub return new GuangDongSalary(); } }
package Create.b.FactoryMethod; //業務調用類 public class Client { public static void main(String[] args) { Factory fa = new HeBeiFactory(); Salary sa = fa.createSalary(); sa.calcSalary(); fa = new GuangDongFactory(); sa = fa.createSalary(); sa.calcSalary(); } }
優勢:每一個實現類均有對象的工廠類java
缺點:若是有新的實現類則須要添加新的工廠類,添加編寫代碼工做量ide