前面提到工厂模式是一对一,现在的抽象工厂则是一对多了。
上代码:
首先猫接口:
public interface Cat { public void speak(); }猫下面分为黑猫白猫,具体实现: 黑猫:
public class BlackCat implements Cat { @Override public void speak() { System.out.println("I am hei miao~"); } }白猫:
public class WhiteCat implements Cat{ @Override public void speak() { System.out.println("I am bai miao~"); } }然后狗接口:
public interface Dog { public void speak(); }狗下面分为黑狗白狗: 白狗:
public class WhiteDog implements Dog{ @Override public void speak() { System.out.print("I am hei wang~"); } }黑狗:
public class BlackDog implements Dog { @Override public void speak() { System.out.print("I am bai wang~"); } }ok,动物类这边结束,接下来是工厂: 动物工厂,里面有获得猫以及获得狗的方法
public interface AnimalFactory { Cat getCat(); Dog getDog(); }然后具体的黑动物工厂:
public class BlackAnimalFactory implements AnimalFactory{ @Override public Cat getCat() { return new BlackCat(); } @Override public Dog getDog() { return new BlackDog(); } }白动物工厂:
public class WhiteAnimalFactory implements AnimalFactory{ @Override public Cat getCat() { return new WhiteCat(); } @Override public Dog getDog() { return new WhiteDog(); } }工厂结束,接下来具体实现类:
public class testMain3 { public static void main(String[] args) { AnimalFactory animalFactory = new WhiteAnimalFactory(); Cat cat = animalFactory.getCat(); cat.speak(); } }OK,Done!