描述
针对工厂模式增加了抽象类(即接口)
 适用
解决工厂方法模式的问题(即修改时不需要修改工厂类),新增功能只需新增新的工厂类;
 示例
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 
 | interface Animal {
 public void say();
 }
 
 class Dog implements Animal {
 @Override
 public void say(){
 Test.printMsg("Dog");
 }
 }
 class Cat implements Animal {
 @Override
 public void say(){
 Test.printMsg("Cat");
 }
 }
 
 interface AnimalInterface{
 public Animal animal();
 }
 
 class DogClass implements AnimalInterface{
 @Override
 public Animal animal() {
 return new Dog();
 }
 }
 class CatClass implements AnimalInterface{
 @Override
 public Animal animal() {
 return new Cat();
 }
 }
 public class Test {
 public static void printMsg(String msg){
 System.out.println(msg);
 }
 public static void main(String[] args){
 AnimalInterface animal_dog = new DogClass();
 Animal dog = animal_dog.animal();
 dog.say();
 AnimalInterface animal_cat = new CatClass();
 Animal cat = animal_cat.animal();
 cat.say();
 }
 }
 
 |