博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式学习笔记——策略模式
阅读量:7060 次
发布时间:2019-06-28

本文共 539 字,大约阅读时间需要 1 分钟。

我觉得策略模式与工厂方法模式极其相似!

策略模式:

工厂方法模式:

如果单从图来看,看不出有何相似之处。但看看调用方法就知道了:

策略模式:

Context context = new Context();    AbstractStrategy strategy;    //采用哪种策略,由调用方决定    strategy = new ConcreteStrategyA();    context.setStrategy(strategy);    context.algorithm();
工厂方法模式:

IFactory factory;    //采用哪个工厂,由调用方法决定    factory = new ConcreteFactoryA();    IProduct product = factory.Create();
策略模式里有个上下文类,与工厂类非常像。在应用这两种模式的代码里,都是由调用方决定采用哪种策略,或者应用哪个工厂。策略代码和工厂代码本身,符合开闭原则,要改就改调用方。当然,这也可以看成是缺点,因为调用方要对策略和工厂非常了解。

转载于:https://www.cnblogs.com/leftfist/p/4257956.html

你可能感兴趣的文章
选择结构与循环结构
查看>>
Linux系统生成随机密码的10种方法
查看>>
puppet初体验
查看>>
oracle安装前环境检查
查看>>
ansible出错
查看>>
linux内核中的信号机制--一个简单的例子
查看>>
【Java】File.createTempFile创建临时文件
查看>>
ldap bdb_db_open 错误解决办法
查看>>
根据菜单查找构建的窗体、流程、报表
查看>>
判断某年是否是闰年
查看>>
初探 C++ 标准库(二十六)
查看>>
安装SP3后不能进入系统的办法
查看>>
20150905日课程作业(计划任务mail,at,cron,)
查看>>
shell训练营Day15
查看>>
MySQL常用语句命令
查看>>
关于字符串的一些操作
查看>>
bootstrap-导航(垂直堆叠带分隔线的导航)
查看>>
安装tomcat-7.0.61图文
查看>>
游戏程序员的学习指南(必看)(二)
查看>>
手把手教你如何建立自己的Linux系统(LFS速成手册)
查看>>