java设计模式之简单工厂模式
简单工厂:
简单工厂的优点:
1.去除客户端与具体产品的耦合,在客户端与具体的产品中增加一个工厂类,增加客户端与工厂类的耦合
2.封装工厂类,实现代码平台的复用性,创建对象的过程被封装成工厂类,可以多平台调用这个工厂
简单工厂的缺点:
1.增加新功能的时候,需要修改case代码块,违反了ocp原则(开放—封闭原则)
2.增加客户端和工厂类的耦合
父类:
public abstract class Man { public abstract void Say(); }
子类(学生类):
public class Student extends Man{ @Override public void Say() { System.out.println("student"); }
子类(超人类):
public class SuperMan extends Man{ @Override public void Say() { System.out.println("SuperMna"); }
工厂类:通过type和switch来判断父类类型指向那个相应的子类,从而子类重写相应的父类方法
public class Gc { public Man getMan(String type) { Man man = null; switch (type) { case "学生": man = new Student(); break; case "超人": man = new SuperMan(); break; } return man; }
Test类:
public class Test { public static void main(String[] args) { Gc gc=new Gc(); Man man=gc.getMan("学生"); man.Say(); Man man1=gc.getMan("超人"); man.Say(); }