要确认一段代码是否真的好,有一下几个要求:
|- 客户端调用简单,不需要关注具体的细节;
|- 客户端代码之外的修改,不影响用户的使用,即:用户可以不用去关心代码是否变更。
工厂模式可以一定程度上解决代码耦合问题。耦合度太高的直接问题就是代码不方便维护,可移植性差。
工厂模式可以参考Java虚拟机的设计思想:
程序 → JVM → 适应不同的操作系统
客户端 → 工厂类 → 直接获取对象(不关注对象是如何创建的)
客户端看不见具体的子类,所有的接口对象都是通过Factory类取得,如果今后需要扩充新的接口子类对象,
则只需要修改Factory类就可以了,但是客户端的调用不会发生变化。
加入丑图说明:
·
附加简单的工厂模式demo:
package cn.demo.test; interface Fruit { void eat(); } class Apple implements Fruit { @Override public void eat() { System.out.println("*** 吃个苹果"); } } class Orange implements Fruit { @Override public void eat() { System.out.println("*** 吃个橘子"); } } class FruitFactory { public static Fruit eatFruit(String str){ if("apple".equals(str)){ return new Apple(); }else if("orange".equals(str)){ return new Orange(); } return null; } } public class FactoryPatternDemo { public static void main(String[] args) { Fruit f = FruitFactory.eatFruit("apple"); f.eat(); } }