🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
~~~ public interface Car { void run(); } ~~~ ~~~ public class BM implements Car{ @Override public void run() { System.out.println("i am baoma"); } } ~~~ ~~~ public class Benci implements Car { @Override public void run() { System.out.println("i am benci"); } } ~~~ ~~~ public class CarFactory { public static Car createCare(String name){ if (name.equals("bm")){ return new BM(); } if (name.equals("benci")){ return new Benci(); } return null; } } ~~~ ~~~ Car bm = CarFactory.createCare("bm"); bm.run(); Car benci = CarFactory.createCare("benci"); benci.run(); ~~~ ### 优缺点 ``` 1. 可以根据外界给定的信息,决定创建那个具体类的对象,有利于整个软件体系结构的优化 2. 包含所有实例的创建逻辑,违反高内聚的责任分配原则 ```