先上图: 本质上讲,策略模式和状态模式做得是同一件事:去耦合。怎么去耦合?就是把干什么(语境类)和怎么干(策略接口)分开,互不依赖。打个比方,下面是我一天的行程: 但问题来了,啪啪啪是个技术活,有著名的48式,今天到底要用哪一式呢?于是我的代码变成了这样: 但代码如果是这样的,宝宝 ...
学完策略模式和状态模式后,对比发现两者的关系类图几乎一样,遂产生了疑问,这两者模式几乎一样的设计,那他两有什么区别吗 不过既然是两者设计模式,那他们肯定不一样了,哪怕是失散多年的孪生兄弟,那也只是同表不同里 下面结合书上和网上的博客记录下我的理解 策略模式类图: 状态模式类图: 策略模式:其思想是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点 ...
2019-03-05 00:40 0 3246 推荐指数:
先上图: 本质上讲,策略模式和状态模式做得是同一件事:去耦合。怎么去耦合?就是把干什么(语境类)和怎么干(策略接口)分开,互不依赖。打个比方,下面是我一天的行程: 但问题来了,啪啪啪是个技术活,有著名的48式,今天到底要用哪一式呢?于是我的代码变成了这样: 但代码如果是这样的,宝宝 ...
之前的一段时间一直在学习设计模式相关知识,学习一段时间后发现,设计模式不能算是知识点,其仅仅是一种思想,我们应该在日常的开发设计中潜移默化的应用这种思想,而不是为了模式而模式。言归正传,今天我想来叨叨策略模式和状态模式。 先看看他们的UML图 两个模式的UML图 ...
策略模式与状态模式在实现上有共同之处,都是把不同的情形抽象为统一的接口来实现,就放在一起进行记录。2个模式的UML建模图基本相似,区别在于状态模式需要在子类实现与context相关的一个状态行为。 状态模式的的思想是,状态之间的切换,在状态A执行完毕后自己控制状态指向状态B。状态模式 ...
人的机缘是神奇的,认识一个人就相当于打开了一个圈子,不管这个人是否在圈子中心,而这点,会在不经意间带给我们意想不到的作用。 如果我们在编写代码的时候,遇到大量的条件判断的时候,可能会采用策略模式来优化结构,因为这时涉及到策略的选择,但有时候仔细查看下,就会发现,这些所谓 ...
版权声明:本文出自汪磊的博客,转载请务必注明出处。 一、策略模式定义 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们之间可以相互替换,策略模式可以在不影响客户端的情况下发生变化。 好了,定义看看就完了,我知道你很烦看定义。 二、策略模式涉及到的三个角色 环境 ...
简单代理模式与策略模式在功能上的很大的区别是: 简单代理模式中,代理类知道被代理类的行为,因为代理类与被代理类实现的是同一个接口,因此代理类与被代理类的结构是相同的; 而策略模式中,策略容器并不知道内部策略的详细信息,因为容器并没有实现与内部策略相同的接口,即容器与内部策略只是简单的组合关系,容器 ...
按一般教程中出现的例子理解: 简单工厂模式:客户端传一个条件进工厂类,工厂类根据条件创建相应的产品类对象,并return给客户端,供客户端使用。即客户端使用的是工厂类生产的产品对象。 策略模式:客户端创建一个Context类对象a(可以看作是工厂模式中工厂类),创建一个策略对象并传参给对象 ...
工厂模式和策略模式看着很像,经常让人混淆不清;它们的区别在哪里,需要细细体味; 相似点 在模式结构上,两者很相似; 差异 用途不一样工厂是创建型模式,它的作用就是创建对象;策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为; 关注点不一样一个关注对象创建一个 ...