编程学习之简单工厂模式与策略模式

Posted 韦小逸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程学习之简单工厂模式与策略模式相关的知识,希望对你有一定的参考价值。

很久之前在学习c++的时候就听到老师说写代码要考虑重构,架构,在此期间学习到了一种简单工厂模式。

何为简单工厂模式呢?简单工厂模式又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

举个栗子,我们可能会遇到这类问题,假如需要一个软件,它可以计算各种图形的面积,使用简单工厂模式来构架的话就是通过创建一个工厂类,而程序运行过程中这些实例化这些具体的计算面积的算法类,然后主程序通过调用这些实例化类的方法来进行计算对应图形的面积。

而策略模式则是对算法或者是一系列同类方法的封装,同样以上例的问题,用策略模式来构建的话,就是将每一种计算图形面积的方法单独封装成类,当需要某种算法的时候,则直接通过使用参数找到对应算法类的计算方法得到计算结果。

第一次学习这2种设计模式的时候,总是将这2者弄混,因为都是用了多态,且有些时候代码中这2种设计模式成组合状态出现。

其实判断方法很简单:

假如使用了一个单独的类来负责某一些功能类的实例化,则是工厂模式,他返回的值是一个对象

如果每次运行都是通过直接功能类的方法得到对应的结果,则是策略模式,它返回的是功能方法计算运行的结果

如果有一个单独负责某一些功能类的实例化同时也负责运行这些实例化出的功能类的方法并返回结果,则是工厂模式与策略模式的组合。

我有些懒所以暂时就不附图了,但是相关的设计模式样例代码和图片我以后都会放出来供大家下载学习。

为什么我记得之前直接ctrl+c和ctrl+v就可以加图片啊,现在不会加图片了,宝宝心里苦T^T

以上是关于编程学习之简单工厂模式与策略模式的主要内容,如果未能解决你的问题,请参考以下文章

《疯狂学习之Java设计模式之简单工厂模式》

Java设计模式学习之工厂模式

简单工厂与策略模式

对设计模式的总结之简单工厂与策略模式

设计模式--简单工厂模式

设计模式学习之工厂模式[转]