摘要: 前面我们介绍了简单工厂模式和工厂方法模式,现在简单的回顾一下:简单工厂模式是充分利用面向对象的三大特性,将操作要素和操作方法对象化,通过定义工厂方法,决定实例化哪个对象。但简单工厂模式不利于程序的扩展,在需要扩展的时候需要将整个工程类开放,不符合开放-封闭原则。在简单工厂模式的基础上,我们通过继承接口实现个操作对象的实例化,各具体操作类各自实现相应的方法,只需实现工厂类接口方法即可,在对功能进行扩展时,不需要对工厂类接口进行修改,只需新增操作类和实例化自己的工厂类即可。那我们为什么需要抽象工厂模式呢?当我们项目的数据库需要从sqlserver改成oracle时,当初用抽象工厂模式设计的优点就体 阅读全文
posted @ 2012-06-17 17:13 iskyoole 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 前一篇文章介绍了简单工厂模式以及如何使用简单工厂模式来实现计算器。但是简单工厂模式有个问题,就是当我们需要扩展运算操作的时候,我们需要修改整个运算工厂类,或者说整个运算工厂类都必须开发才能允许操作扩展,这违背了开发-封闭原则,这是我们就需要工厂方法模式了。也就是说工厂方法模式必须定义一个用于创建对象的接口,让子类决定实例化哪个对象。也就是说,工厂方法模式把简单工厂模式的内部逻辑判断移到了客户端来判断,由客户端决定来实例化哪个对象。以实现计算器为例,对运算操作功能进行扩展时,我们不再需要在运算工厂类中新增case判断,只需要新增一个相应功能的运算类和工厂类即可。1 /// <summar. 阅读全文
posted @ 2012-06-17 00:24 iskyoole 阅读(196) 评论(0) 推荐(0) 编辑