设计方式之工厂模式(女娲造人)
设计模式之工厂模式(女娲造人)
优点:良好的封装行,代码结构清晰,扩展性好,屏蔽了产品类,是典型的解耦框架。
使用场景:1.所有需要生成对象的地方都可以使用,不过要考虑是否增加代码的复杂性。
2.需要灵活的,可扩展的框架时可以考虑。
3.可用在异构项目上.
package design.factory; public interface AbstractHumanFactory { public abstract <T extends Human> T createHuman(Class<T> c); } package design.factory; public class BlackHuman implements Human { public void getColor() { // TODO Auto-generated method stub System.out.println("黑色人种"); } public void talk() { // TODO Auto-generated method stub System.out.println("非洲语"); } } package design.factory; public class YellowHuman implements Human { public void getColor() { // TODO Auto-generated method stub System.out.println("黄色人种"); } public void talk() { // TODO Auto-generated method stub System.out.println("中国话"); } } package design.factory; public interface Human { public void getColor(); public void talk(); } package design.factory; public class HumanFactory implements AbstractHumanFactory { public <T extends Human> T createHuman(Class<T> c) { // TODO Auto-generated method stub Human human = null; try{ human = (Human)Class.forName(c.getName()).newInstance(); }catch(Exception e){ e.printStackTrace(); } return (T)human; } } package design.factory; public class NvWa { public static void main(String[] args){ AbstractHumanFactory yinyanglu = new HumanFactory(); Human black = yinyanglu.createHuman(BlackHuman.class); black.getColor(); black.talk(); Human yellow = yinyanglu.createHuman(YellowHuman.class); yellow.getColor(); yellow.talk(); } }
优点:良好的封装行,代码结构清晰,扩展性好,屏蔽了产品类,是典型的解耦框架。
使用场景:1.所有需要生成对象的地方都可以使用,不过要考虑是否增加代码的复杂性。
2.需要灵活的,可扩展的框架时可以考虑。
3.可用在异构项目上.