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

陕西省建设网站麻涌仿做网站

陕西省建设网站,麻涌仿做网站,房产中介网站开发,app 网站开发公司一.基本内容1 . 实例有各种鸭子#xff08;野鸭#xff0c;北京鸭子#xff0c;水鸭等#xff0c;鸭子有各种行为#xff0c;比如飞#xff0c;叫等显示鸭子的信息传统方法解决#xff1a;鸭子为抽象类#xff0c;具体鸭子继承抽象类2.传统方法的不足#xff1a;其他鸭…一.基本内容1 . 实例有各种鸭子野鸭北京鸭子水鸭等鸭子有各种行为比如飞叫等显示鸭子的信息传统方法解决鸭子为抽象类具体鸭子继承抽象类2.传统方法的不足其他鸭子都继承了抽象类所以fly让所有子类都会飞这不正确上面的问题其实是继承带来的问题对类的局部改动尤其超类的局部改动会影响其他部分会有溢出效应为了改进问题可以通覆盖fly方法解决 ---- 覆盖解决如果我们有一个玩具鸭子这样需要玩具鸭子覆盖所有的实现方法麻烦 解决方法 ----- 策略模式3 . Strategy Pattern 也叫政策模式定义算法族策略族分别封装起来让他们之间可以互相替换此模式让算法的变化独立于使用算法的客户4 . 体现了几个设计原则把变化的代码从不变的代码中分离出来针对接口编程而不是具体类定义了策略接口多用组合/聚合少用继承通过组合方式使用策略4.采用了面向对象的继承和多态机制5.优点算法可以自由切换实现抽象策略就成为策略家族的一个成员通过封装角色对其进行封装保证对外提供“可自由切换”的策略避免使用多重的条件判断使用策略简化操作避免了条件语句判断扩展性好6.缺点策略类数据增多所有的策略类对外暴露7.注意事项策略模式的关键是分析变化与不变的部分 核心思想是多元组合/聚合少用继承用行为类组合而不是行为的继承体现了“对修改关闭对扩展开放”的原则客户端增加行为不要修改源代码只要添加一种策略即可避免了使用多重转移语句提供了可以替换继承关系的方法将算法封装在独立的Strategy类中似的可以独立于Context改变他易于切换理解扩展每添加一个策略就就增加一个类当策略过多时就会导致类的数目庞大如果系统中的一个策略家族的具体策略数量超过4个。则需要考虑使用混合模式解决策略类膨胀和对外暴露的问题8.代码实现public interface Fly { void fly();//子类具体实现 }public class GoodFly implements Fly{Override public void fly() {System.out.println(飞翔技术非常好); }}public class BadFly implements Fly{ Override public void fly() {System.out.println(飞翔技术一般); }}public class NoFly implements Fly{ Override public void fly() {System.out.println(不会飞); }}public abstract class Duck { //属性策略接口 Fly fly;public Duck() {}public abstract void display();public void quack() {System.out.println(鸭子嘎嘎叫。。); } public void swim() {System.out.println(鸭子游泳); } public void fly() {//改进if(fly!null) {fly.fly();} } } public class PekingDuck extends Duck{ public PekingDuck() {fly new NoFly(); }Override public void display() {// TODO Auto-generated method stubSystem.out.println(北京鸭子); }}public class ToyDuck extends Duck{ public ToyDuck() {fly new NoFly(); } Override public void display() {System.out.println(玩具鸭子);} //重写父类的所有方法 public void quack() {System.out.println(玩具鸭子不能叫。。); } public void swim() {System.out.println(玩具鸭子不能游泳); } public void fly() {System.out.println(玩具鸭子不能飞); } }public class Client { public static void main(String[] args) {WildDuck wduck new WildDuck();wduck.fly();PekingDuck pduck new PekingDuck();pduck.fly(); } }9.应用Arrays使用了策略模式Arrays的Comparator就使用了策略模式多个类只区别在表现行为不同可以使用Strategy模式在运行时动态选择具体要执行的行为。需要在不同情况下使用不同的策略(算法)或者策略还可能在未来用其它方式来实现。 对客户隐藏具体策略(算法)的实现细节彼此完全独立。
http://www.hkea.cn/news/14323637/

相关文章:

  • 电子商务网站建设的问题关键词排名的工具
  • 福建 建设网站单页面营销型网站制作
  • 企业宣传报道模板范文贺州网站seo
  • 做网站注意什么医疗网站建设好么
  • 河池市网站建设wordpress 建站教程 下载
  • 小学生做甜品的网站火车头采集Wordpress字段
  • 网站开发湛江成都高新网站建设
  • 网站优化排名软件网168电商平台
  • 厦门好景科技做网站更换wordpress界面
  • 网站与微信区别建设网站公司那家好
  • 宜昌当阳网站开发网站模板修改
  • win2008 iis建网站免费企业邮箱申请
  • 河南省建设厅八大员网站火车票网站建设多少钱
  • 南昌商城网站设计wordpress设计网页游戏
  • 重庆建站公司费用长沙招聘服务网
  • 永春县住房和城乡建设网站python建设购物网站
  • 做动漫网站想做网站制作运营注册什么公司核实
  • 福州网站建?O手机微网站注册登录源码
  • 苏州网站开发找薇如何做网站本地服务器吗
  • 特乐网站建设wordpress 文章 版权
  • 用vs2010做网站教程企业网站源码怎么获取
  • 免费网站建设咨询网站推广公司汉狮网络
  • 合肥门户网站制作建设大连网站建设意动科技
  • app公司网站建设如何建一个公司的网站
  • 网站经营内容grimhelm wordpress
  • 泉州网站建设制作网站百度地图
  • 东莞企业网站建设报价设计微信小程序
  • 软件工程课程网站开发设计模板素材网站
  • 商业网站推广骆驼网站建设
  • 门户网站建设工作聊城做网站推广