当前位置: 首页 > news >正文

搜不到自己的网站郑州网站建设公司招聘

搜不到自己的网站,郑州网站建设公司招聘,故城网站建设,wordpress插件轮播图今天#xff0c;我们将借助一个示例来尝试了解策略模式。 我们将考虑的示例是国际象棋游戏。 这里的目的是解释策略模式#xff0c;而不是构建全面的国际象棋游戏解决方案。 策略模式#xff1a;策略模式被称为行为模式-用于管理对象之间的算法#xff0c;关系和职责。 策… 今天我们将借助一个示例来尝试了解策略模式。 我们将考虑的示例是国际象棋游戏。 这里的目的是解释策略模式而不是构建全面的国际象棋游戏解决方案。 策略模式策略模式被称为行为模式-用于管理对象之间的算法关系和职责。 策略模式的主要好处是在运行时选择算法/行为。 让我们尝试通过实现设计棋盘游戏来理解这一点。 在国际象棋中有不同的角色例如国王皇后主教并且所有角色都有不同的动作。 此设计可能有很多解决方案让我们一个一个地探索 第一种方法是在每个类中定义运动每个字符都有其自己的move实现。 这样就没有代码可重用性并且我们无法在运行时更改实现。 制作一个单独的MovementController类并为每种类型的对象放置一个if否则。 public class BadDesginCharacterMovementController {public void move(Character character){if(character instanceof King){System.out.print(Move One Step forward);}else if(character instanceof Queen){System.out.print(Move One Step forward);}else if(character instanceof Bishop){System.out.print(Move diagonally);}} } 这是一个较差的设计具有很强的耦合性而且使用if / else使其难看。 因此我们希望有一个设计在其中我们可以有松散的耦合可以在运行时决定运动算法并且可以重复使用代码。 让我们看看使用策略模式的完整实现。 下面是我们的实现的类图 完整的源代码可以从这里下载。 我们将有一个基本的抽象类作为Character Class所有的角色都可以扩展并设置自己的MovementBehaviour实现。 public class Character {private MovementBehaviour movementBehaviour;String move(){return movementBehaviour.move();}public void setMovementBehaviour(MovementBehaviour movementBehaviour) {this.movementBehaviour movementBehaviour;} } 这个班级有一个运动行为 public interface MovementBehaviour {String move(); } 因此每个角色国王女王主教都将扩展角色并且他们可以有自己的运动行为实现。 public class King extends Character {public King() {setMovementBehaviour(new SingleForward());} } 为了简单起见在这里我在King的构造函数中调用了setMovemementBehaviour方法。 同样另一个字符Queen可以定义为 public class Queen extends Character {public Queen() {setMovementBehaviour(new SingleForward());} } 并且Bishop为 public class Bishop extends Character {public Bishop() {setMovementBehaviour(new DiagonalMovement());} } 不同动作的实现可以如下 单向前进 public class SingleForward implements MovementBehaviour {Overridepublic String move() {return move one step forward;} } 对角运动 public class DiagonalMovement implements MovementBehaviour {Overridepublic String move() {return Moving Diagonally;} } 通过这个例子我们可以理解策略模式。 翻译自: https://www.javacodegeeks.com/2014/10/understanding-strategy-pattern-by-designing-game-of-chess.html
http://www.pierceye.com/news/432397/

相关文章:

  • 做海报的高清模板的网站诛仙3官方网站做花灯答案
  • 好用的网站后台管理系统黑龙江最新通知今天
  • 做招聘网站需要多少钱als冰桶挑战赛的网络营销方式
  • wordpress单位内网做网站云南省文山州网站建设
  • 单页网站制作视频教程四川餐饮培训学校排名
  • 微信公众平台网站建设wordpress中英切换
  • 万网x3主机l系统放两个网站自学设计的网站
  • 网站微信建设运维经验分享图营销app
  • 西安网站开发软件常州注册公司
  • 和网站建设相关的行业企业网络规划设计方案
  • 风中有朵雨做的云网站观看开网店教程
  • 网站建设与管理教学视频教程服务器绑定网站打不开
  • 百度云建站WordPress开发新客户的十大渠道
  • 南宁比优建站视屏网站的审核是怎么做的
  • 怎样建设尧都水果网站免费手机网站建站系统
  • 全网营销提供seo服务
  • 吕梁网站设计服务器网站建设维护合同
  • 网站轮播图片怎么做高校网站建设模板
  • 易语言做返利网站企业培训考试平台官网
  • 天津做不锈钢的网站做网站要几个部门组成
  • 宿迁集团网站建设用dw制作一个网站
  • 网站创建二级域名网络营销到底是个啥
  • 银州手机网站建设做网站前台模型要做什么呢
  • 做彩票网站推广网站建设培训方案
  • o2o网站建设多少钱昆山专业网站建设
  • c语言自学免费网站网站制作职业
  • 免费刷赞网站推广qq免费有哪些网页设计软件
  • 如何设计网站的首页做海鲜代理在什么网站
  • 网站分析的优劣势苏州网络推广企业
  • 威海网站建设公司施工企业成本核算方法