简单工厂模式概述
又叫静态工厂方法模式,它定义一个具体的工厂类负责一些类的实例
优点
客户端不需要在负责对象的创建,从而明确了各个类的职责
缺点:
这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某
些对象的而创建方式不通风,就需要不断的修改工厂类,不利于后期的维护
package com.simplafactory; public interface Animal { public void eat(); } package com.simplafactory; public class Cat implements Animal { @Override public void eat() { System.out.println("猫吃鱼"); } } package com.simplafactory; public class Dog implements Animal { @Override public void eat() { System.out.println("狗吃肉"); } } package com.simplafactory; public class AnimalDemo { public static void main(String[] args) { // Dog d=new Dog(); // Cat c=new Cat(); // // c.eat(); // d.eat(); // // System.out.println("==============="); // Animal d=new Dog(); // Animal c=new Cat(); // d.eat(); // c.eat(); // AnimalFactory af=new AnimalFactory(); // Dog d=af.createDog(); // Cat c=af.createCat(); // d.eat(); // c.eat(); AnimalFactory af=new AnimalFactory(); Dog d=(Dog) af.createAnimal("dog"); Cat c=(Cat) af.createAnimal("cat"); if(d!=null){ d.eat(); } if(c!=null){ c.eat(); } } } package com.simplafactory; public class AnimalFactory { // public Dog createDog(){ // return new Dog(); // } // // public Cat createCat(){ // return new Cat(); // } public Animal createAnimal(String name){ if("cat".equalsIgnoreCase(name)){ return new Cat(); } else if("dog".equalsIgnoreCase(name)){ return new Dog(); } return null; } }