浅读《大话设计模式》----------------1、代码无错就是优?---简单工厂模式
如果说面向对象没有用,如果争辩自己当前处理的问题是一个很简单的问题所以自己不用面向对象的方法来处理。那么,曹操的“喝酒唱歌,人生真爽”到“对酒当歌,人生几何”就是一个很有针对性很有讽刺意义的例子,这简直是作者的神来之笔!面向对象的巨大意义:第一、可维护;第二、可复用;第三、可扩展;第四、灵活性好。写程序的发展:学习了面向对象的分析设计编程思想,开始考虑通过封装、继承、多态把程序的耦合度降低;用设计模式使得程序更加的灵活,容易修改,并且易于复用。
其实,从以上这段话,我觉得也说明了设计模式是在面向对象方法基础之上的,所以首先应该熟练的运用面向对象的基本特征:封装、继承和多态!从本章中的计算器程序的例子,我们应该敏感的发现这样一个问题:无论多么小的程序,都可以用到面向对象!都可以用封装、继承、多态!而这个看起来很小很简单的结论,我这个C++程序员竟然之前还是持否认态度!说实话,当时看到这些,我很震惊!
这其实反映的是软件设计的需求:一定要降低耦合度,让其更容易维护更好复用更灵活~!记住了,清晰合理的面向对象,怎么都不过分!
简单工厂模式:终于由面向对象进入设计模式了!为什么叫简单工厂模式而不叫工厂模式或者负责工厂模式了?因为这个工厂确实就是一个很简单的逻辑判断,一般只需一个switch即可,不过其作用却也是很好很大的!他负责创建别的类的实例!
简单工厂的运用:如果将针对从一个父类继承的多个子类进行不同条件下的实例化和运用等,这个选择判断的条件可能比较多,显示为客户端代码显得冗余,或者那些子类本身就是不希望让客户端看到的,此时将这些判断放到一个统一的工厂里面生产将是一种很好的封装模式。记住:工厂只要一个,也就是说经常要选择处理许多同父类对象。一个工厂是只有自己的一个产品线的,要生产本质差别不大但是种类繁多的产品的工厂才有意义!内部并非要进行很多很多复杂的加工处理才能形成产品,相反,应该是简单处理就能得到产品,这才是简单工厂模式。也就是说:是很简单的处理最终得到某种产品,甚至都不负责产品出厂后的维护工作。毕竟,他的定位只是一个小作坊:用面向对象的思想,一个类实现一个函数的功能!