实例化一个打印机的时候就必须给出data参数才能实例化?并且“默认”打印了?你自己“觉得更好”,但是你肯定没有想得稍微远一点。实例化就是实例化,我宁愿“笨”一点。否则,反而弄巧成拙。

解决方案 »

  1.   

    其实GOF设计模式并没有去明确地去首先研究“责任”问题,他基本上是就事论事地研究编程问题,因此很容易被人误解为“以方便编写代码为目的的技术”。只有后来又看了GOF之后很多年出现的书籍的人,反过来把“职责”加入“模式”,努力想把设计模式提高为系统分析技巧的高度,好像设计模式中已经说明了系统分析的技术了。其实,我认为GOF的设计模式值应该作为编程经验总结,而非系统分析和设计的入门。
      

  2.   

    其实,许多人都不赞成不了解OO的人去先去看“设计模式”,大多数“过来人”都知道“应该学好OOAD”,用关于职责等类似的知识作为设计工具,而不是首先去学“设计模式”。
      

  3.   

    楼主的认识感觉太专注于,你看到的例子了,你看到的例子中,打印机只有一个printdata,而如果我还有一个ChangePaper呢,按你的做法,你的工厂类也就不是工厂类了,你的工厂类将与你的App高度耦合
      

  4.   

    设计模式更有用应该是属于交流时的对细节的封装。比如有一个接口有一个方法叫排兵布阵,福拉多类实现了这个接口,在指挥中国队。后来足协想用别人dll中的杜伊类的排兵布阵,但它没有实现接口,那么足协对你的要求就应该是:为接口和杜伊类做一个适配器。简单一句话,你就知道怎么去做代码了。