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

网站管理建设总结在哪做网站关键词

网站管理建设总结,在哪做网站关键词,app手机端电子商务网站功能,建设小说网站风险分析访问者模式 这个模式用的很少#xff0c;《设计模式》的作者评价为#xff1a; 大多情况下#xff0c;你不需要使用访问者模式#xff0c;但是一旦需要使用它时#xff0c;那就真的需要使用了 一、测评系统的需求 1)将观众分为男人和女人#xff0c;对歌手进行测评…访问者模式 这个模式用的很少《设计模式》的作者评价为 大多情况下你不需要使用访问者模式但是一旦需要使用它时那就真的需要使用了 一、测评系统的需求 1)将观众分为男人和女人对歌手进行测评当看完某个歌手表演后得到他们对该歌手不同的评价(评价 有不同的种类比如 成功、失败 等) 二、 传统方式的问题分析 1)如果系统比较小还是 ok 的但是考虑系统增加越来越多新的功能时对代码改动较大违反了 ocp 原则不利于维护 2)扩展性不好比如 增加了 新的人员类型或者管理方法都不好做 3)引出我们会使用新的设计模式 – 访问者模式 三、 访问者模式基本介绍 1)访问者模式Visitor Pattern封装一些作用于某种数据结构的各元素的操作它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。 2)主要将数据结构与数据操作分离解决 数据结构和操作耦合性问题 3)访问者模式的基本工作原理是 在被访问的类里面加一个对外提供接待访问者的接口 4)访问者模式主要应用场景是 需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联)同时需要避免让这些操作污染这些对象的类可以选用访问者模式解决 四、访问者模式的原理类图 对原理类图的说明-即(访问者模式的角色及职责) 1)Visitor 是抽象访问者为该对象结构中的 ConcreteElement 的每一个类声明一个 visit 操作 2)ConcreteVisitor 是一个具体的访问者 实现每个有 Visitor 声明的操作是每个操作具体实现的部分. 3)ObjectStructure 能枚举它的元素 可以提供一个高层的接口用来允许访问者访问元素 4)Element 定义一个 accept 方法接收一个访问者对象 5)ConcreteElement 为具体元素实现了 accept 方法 五、访问者模式应用实例 1)将人分为男人和女人对歌手进行测评当看完某个歌手表演后得到他们对该歌手不同的评价(评价 有不同的种类比如 成功、失败 等)请使用访问者模式来说实现 2)思路分析和图解(类图) 3)代码实现 Action抽象的操作类他里面是抽象的操作方法 public abstract class Action {//得到男性 的测评public abstract void getManResult(Man man);//得到女的 测评public abstract void getWomanResult(Woman woman); } 主函数 public class Client {public static void main(String[] args) {//创建 ObjectStructureObjectStructure objectStructure new ObjectStructure();objectStructure.attach(new Man()); objectStructure.attach(new Woman());//成功Success success new Success(); objectStructure.display(success);System.out.println(); Fail fail new Fail(); objectStructure.display(fail);System.out.println(给的是待定的测评);Wait wait new Wait(); objectStructure.display(wait);} } Fail public class Fail extends Action {Overridepublic void getManResult(Man man) {System.out.println( 男人给的评价该歌手失败 !);}Overridepublic void getWomanResult(Woman woman) {System.out.println( 女人给的评价该歌手失败 !);} } Man public class Man extends Person {Overridepublic void accept(Action action) {action.getManResult(this);} } ObjectStructure数据结构 //数据结构管理很多人Man , Woman public class ObjectStructure {//维护了一个集合private ListPerson persons new LinkedList();//增加到 listpublic void attach(Person p) {persons.add(p);}//移除public void detach(Person p) { persons.remove(p);}//显示测评情况public void display(Action action) { for(Person p: persons) {p.accept(action);}}} Person抽象的人 类 public abstract class Person {//提供一个方法让访问者可以访问public abstract void accept(Action action); } Success public class Success extends Action {Overridepublic void getManResult(Man man) {System.out.println( 男人给的评价该歌手很成功 !);}Overridepublic void getWomanResult(Woman woman) {System.out.println( 女人给的评价该歌手很成功 !);} } Wait public class Wait extends Action {Overridepublic void getManResult(Man man) {System.out.println( 男人给的评价是该歌手待定 ..);}Overridepublic void getWomanResult(Woman woman) {System.out.println( 女人给的评价是该歌手待定 ..);} } Woman //说明 //1. 这里我们使用到了双分派, 即首先在客户端程序中将具体状态作为参数传递 Woman 中(第一次分派) //2. 然后 Woman 类调用作为参数的 具体方法 中方法 getWomanResult, 同时将自己(this)作为参数 // 传入完成第二次的分派 public class Woman extends Person{Overridepublic void accept(Action action) {action.getWomanResult(this);}} 六、访问者模式的注意事项和细节 优点 1)访问者模式符合单一职责原则、让程序具有优秀的扩展性、灵活性非常高 2)访问者模式可以对功能进行统一可以做报表、UI、拦截器与过滤器适用于数据结构相对稳定的系统 缺点 1)具体元素对访问者公布细节也就是说访问者关注了其他类的内部细节这是迪米特法则所不建议的, 这样造成了具体元素变更比较困难 2)违背了依赖倒转原则。访问者依赖的是具体元素而不是抽象元素 3)因此如果一个系统有比较稳定的数据结构又有经常变化的功能需求那么访问者模式就是比较合适的. 七、理解 通过ObjectStrcure传入对应的person的实现类并调用其accept()并传入具体的action的实现类 Perosn下面的具体实现类如Man类他的accept()方法里面又调用了传入的action的方法并把自己传入(this) 就是man调用accept()并传入了fail在man的accept方法中调用了fail的方法这个fail的方法又想要传入man类所以就出现了双生派 张三李四去按摩店例子 想到了个例子 张三和李四访问按摩店寻找按摩店的技师 ------------------------ 把张三李四抽象成Element抽象类为Perosn抽象类 Perosn抽象类里面有一个抽象方法呼叫技师call()方法 按摩店技师抽象成Visitor抽象类访问者也就是Technician抽象类 Technician抽象类里面有两个实现类1、金油技师2、腿部技师 他们分别对应对张三按摩方法makeToZhangsan()、对李四按摩方法makeToLisi() 技师Technician抽象类下面有两个实现一个是金油技师oilTech类一个是腿部技师LegsTech类 他们会实现对应的对张三按摩方法makeToZhangsan()、对李四按摩方法makeToLisi()并要求传入服务对象也就是Zhansan类还是Lisi类 Person抽象类有两个实现类一个是张三Zhansan类一个是李四Lisi类 他们实现call()方法并作出了实现这个方法传入我们要叫的具体技师如金油技师oilTech类 在这个call()方法中调用对应技师的服务张三方法makeToZhansan()或对李四按摩方法makeToLisi() -------------------------- 最后在ObjectStructure也就是对应的按摩中心的一个集合里面有增加服务对象方法attch()和移除服务对象方法detach()都是传入对应服务对象 通过这个集合来管理按摩中心的服务的人如张三、李四 然后有一个服务方法make去传入对应技师然后遍历调用对应里面服务服务对象的call()方法去呼唤技师。
http://www.hkea.cn/news/14428874/

相关文章:

  • 河南安阳市滑县网站seo优化有哪些
  • 自己建设网站怎么挣钱上海松江品划做网站
  • 手机建站平台哪个便宜python如何创建网页
  • 济南百度整站seo推广电商数据分析怎么做
  • 中文企业网站模板下载有什么wordpress
  • 买空间的网站好网站开发人员 组织架构
  • 辽宁住房和城乡建设部网站怎么在百度上做推广
  • 网站制作与建设教程下载网站建设和数据容量整合
  • 如何做装修网站wordpress支持的语言包
  • 服装网站建设企业需求调查金融做市场广告挂哪些网站
  • 网络软文推广网站好的建站平台
  • 网站建设费开票收候开在哪个类别里模仿一个网站建设多少钱
  • 巨鹿县住房与城乡建设厅网站学做网站要懂英语吗
  • 无锡做网站的wordpress媒体插件
  • 登不上建设企业网站wordpress哪里编辑页脚
  • 外贸soho 网站建设企业门户网站建设信息
  • 程序员做的导航网站如何找百度做网站
  • 如何查询自己的网站是否被收录做app用什么软件
  • saas建站平台有哪些佛山宽屏网站建设
  • 外贸建站与推广做个卖东西的网站
  • 网上祭奠类网站怎么做普通电脑可以做网站服务器吗
  • 怎样建造网站宜宾网站建设工作室
  • 网站建设平台安全问题有哪些方面摄影作品网站知乎
  • 北京电脑培训网站东莞常平邮政编码多少
  • 做网站需要会什么条件做兼职的网站都有哪些工作内容
  • 爱企查在线查询wordpress yoast seo
  • 谷歌官方网站首页南京奥美广告公司
  • 内衣网站建立做网站备案与不备案的区别
  • 江苏水利工程建设招投标网站淘宝店铺买卖交易平台
  • 网站开发技术公司网站开发介绍人拿多少钱