前面提到工厂模式是一对一,现在的抽象工厂则是一对多了。
上代码:
首先猫接口:
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!