博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
策略模式 Strategy
阅读量:5846 次
发布时间:2019-06-18

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

根据所给信息,选取不同策略;

策略模式与工厂模式区别

 个人理解(工厂模式:通过所给信息建立不同的对象

      策略模式:通过所给信息选择不同的策略

    )

  • 用途不一样 
    工厂是创建型模式,它的作用就是创建对象; 
    策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为;
  • 关注点不一样 

    一个关注对象创建 
    一个关注行为的封装

  • 解决不同的问题 

    工厂模式是创建型的设计模式,它接受指令,创建出符合要求的实例;它主要解决的是资源的统一分发,将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。主要应用在多数据库选择,类库文件加载等。 
    策略模式是为了解决的是策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,策略模式让策略的变化独立于使用策略的客户。

  • 工厂相当于黑盒子,策略相当于白盒子。

    // Strategy.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include 
    #include
    using namespace std;class Paint{public: virtual void paint() = 0;};class PaintbyPen:public Paint{public: void paint(){ cout<<"use pen to paint"<
    getpaint("pencil"); p->paint(); return 0;}

     

转载于:https://www.cnblogs.com/xiumukediao/p/4642910.html

你可能感兴趣的文章
vBulletin系统曝SQL注入漏洞 安全狗可直接防御
查看>>
Intellij IDEA神器居然还有这些小技巧
查看>>
HBase基本原理
查看>>
php使用qr生成二维码
查看>>
常用的软件
查看>>
集成spring3、hibernate4、junit
查看>>
eclipse常用快捷键
查看>>
AWK测试
查看>>
apache tomcat mod_proxy负载均衡
查看>>
php5.6.3 + apache2.4.25 安装配置
查看>>
Velocity用法记录
查看>>
通过 ulimit 改善系统性能
查看>>
Java源码阅读的真实体会
查看>>
Uploadify v2. 1.0 使用解决的小问题
查看>>
★如何引导客户需求?几个经典的案例分析!
查看>>
空行会影响 Java 编译吗?
查看>>
Nginx中配置thinkphp的URL重写
查看>>
算法导论学习参考
查看>>
java实现多路分发
查看>>
Map 属性以JSON 形式存于数据库
查看>>