问题RT
近来自己看了设计模式的书,上网查了示例代码及好几篇评论,自己也动手写了简单工厂、工厂方法,抽象工厂的例子。大道理我想谁都懂,什么减少耦合啦,开闭原则啦什么的,但其最根本的东西我还是没理解。
问题:为何要将new的过程封装起来,而不在需要的地方直接new??这样做的好处仅仅是方便在新建对象实例的方式改变时方便修改么???

解决方案 »

  1.   

    在用的地方直接NEW,那返回的一定是你NEW的对象。实用工厂获得对象,这个对象不一定是你NEW出来的,可能是创建好的,你只是拿来用,用完了还回去,或者通过修改工厂,而方便的改变NEW出来的对象。
      

  2.   

    减少耦合并不是大道理,而是很实用的道理。举例来说,如果直接new实现某接口的对象,将来要对接口进行重新做实现(起个新的类名),
    假如你在100个地方调用了new,则你有100个地方要改。如果你使用工厂类,只改一个地方。算不算很好的理由?
      

  3.   

    经典的GOF的模式,基本上实际用到的,安频繁程度:
    1、单例
    2、工厂
    3、template
    4、组合模式
    5、职责链
    6、Visitor现在模式太多了,很多人随便搞点什么代码就抽象成模式,要记可真记不住,还是随时记住自己编程的使命吧:业务目标、质量目标。
      

  4.   

    看来可以结贴了,十分感谢jinxfei ,尤其是8楼这段见解。