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

前端做的好的网站云南做网站哪家便宜

前端做的好的网站,云南做网站哪家便宜,张家口人社app最新下载,做网站好看的旅行背景图片在访问者模式#xff08;Visitor Pattern#xff09;中#xff0c;我们使用了一个访问者类#xff0c;它改变了元素类的执行算法。通过这种方式#xff0c;元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式#xff0c;元素对象已接受… 在访问者模式Visitor Pattern中我们使用了一个访问者类它改变了元素类的执行算法。通过这种方式元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式元素对象已接受访问者对象这样访问者对象就可以处理元素对象上的操作。 【情人节到了要给每个MM送一束鲜花和一张卡片可是每个MM送的花都要针对她个人的特点每张卡片也要根据个人的特点来挑我一个人哪搞得清楚还是找花店老板和礼品店老板做一下Visitor让花店老板根据MM的特点选一束花让礼品店老板也根据每个人特点选一张卡这样就轻松多了 访问者模式访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话接受这个操作的数据结构可以保持不变。访问者模式适用于数据结构相对未定的系统它把数据结构和作用于结构上的操作之间的耦合解脱开使得操作集合可以相对自由的演化。访问者模式使得增加新的操作变的很容易就是增加一个新的访问者类。 访问者模式将有关的行为集中到一个访问者对象中而不是分散到一个个的节点类中。当使用访问者模式时要将尽可能多的对象浏览逻辑放在访问者类中而不是放到它的子类中。访问者模式可以跨过几个类的等级结构访问属于不同的等级结构的成员类。】 意图主要将数据结构与数据操作分离。 主要解决稳定的数据结构和易变的操作耦合问题。 何时使用需要对一个对象结构中的对象进行很多不同的并且不相关的操作而需要避免让这些操作污染这些对象的类使用访问者模式将这些封装到类中。 如何解决在被访问的类里面加一个对外提供接待访问者的接口。 关键代码在数据基础类里面有一个方法接受访问者将自身引用传入访问者。 1优点 1、符合单一职责原则。 2、优秀的扩展性。 3、灵活性。 2缺点 1、具体元素对访问者公布细节违反了迪米特原则。 2、具体元素变更比较困难。 3、违反了依赖倒置原则依赖了具体类没有依赖抽象。 3使用场景 1、对象结构中对象对应的类很少改变但经常需要在此对象结构上定义新的操作。 2、需要对一个对象结构中的对象进行很多不同的并且不相关的操作而需要避免让这些操作污染这些对象的类也不希望在增加新操作时修改这些类。 一个对象结构包含很多类对象它们有不同的接口而你想对这些对象实施一些依赖于其具体类的操作也就说是用迭代器模式已经不能胜任的情景。需要对一个对象结构中的对象进行很多不同并且不相关的操作而你想避免让这些操作“污染”这些对象的类。 4注意事项 访问者可以对功能进行统一可以做报表、UI、拦截器与过滤器。 5应用实例 您在朋友家做客您是访问者朋友接受您的访问您通过朋友的描述然后对朋友的描述做出一个判断这就是访问者模式。 代码 public class Computer {ComputerPart cpu new CPU();ComputerPart memory new Memory();ComputerPart board new Board();public void acccept(Visitor v) {this.cpu.accept(v);this.memory.accept(v);this.board.accept(v);}public static void main(String[] args) {PersonelVisitor p new PersonelVisitor();new Computer().acccept(p);System.out.println(p.totalPrice);} }abstract class ComputerPart {abstract void accept(Visitor v);//some other operations eg:getName getBrandabstract double getPrice(); }class CPU extends ComputerPart {Overridevoid accept(Visitor v) {v.visitCpu(this);}Overridedouble getPrice() {return 500;} }class Memory extends ComputerPart {Overridevoid accept(Visitor v) {v.visitMemory(this);}Overridedouble getPrice() {return 300;} }class Board extends ComputerPart {Overridevoid accept(Visitor v) {v.visitBoard(this);}Overridedouble getPrice() {return 200;} }interface Visitor {void visitCpu(CPU cpu);void visitMemory(Memory memory);void visitBoard(Board board); }class PersonelVisitor implements Visitor {double totalPrice 0.0;Overridepublic void visitCpu(CPU cpu) {totalPrice cpu.getPrice()*0.9;}Overridepublic void visitMemory(Memory memory) {totalPrice memory.getPrice()*0.85;}Overridepublic void visitBoard(Board board) {totalPrice board.getPrice()*0.95;} }class CorpVisitor implements Visitor {double totalPrice 0.0;Overridepublic void visitCpu(CPU cpu) {totalPrice cpu.getPrice()*0.6;}Overridepublic void visitMemory(Memory memory) {totalPrice memory.getPrice()*0.75;}Overridepublic void visitBoard(Board board) {totalPrice board.getPrice()*0.75;} }
http://www.w-s-a.com/news/978409/

相关文章:

  • 网站管理助手3.0做淘宝网站用什么软件做
  • 贵阳做网站的公司wordpress趣味插件
  • 自己设置免费网站设计平台南京哪里有做公司网站的
  • 建设公司内网网站的意义自助建站网站的宣传手册
  • 手机建设中网站建立个人网站服务器
  • 网站开发工程师岗位概要网站怎么制作教程
  • 城乡建设主管部门官方网站公司简介模板ppt范文
  • 网站认证必须做么cc0图片素材网站
  • net域名 著名网站国外设计案例网站
  • 淘宝客网站哪里可以做app地推网
  • 宜昌建设厅网站中国最新时事新闻
  • 微网站怎么开发wordpress 发表评论
  • 山东网站建设是什么一页网站首页图如何做
  • 游戏开发与网站开发哪个难万网影
  • 做网站编程语言建筑施工特种证书查询
  • 找人做网站内容自己编辑吗修改wordpress登陆界面
  • 登陆建设银行wap网站湖南网站建设磐石网络答疑
  • 58网站怎么做浏览度才高论坛网站怎么做排名
  • wordpress 手机网站支付京东网站建设的经费预算
  • 自己怎么样做游戏网站做海外贸易网站
  • 建立什么样的网站好制作网页网站代码
  • 岳麓区专业的建设网站公司尚一网常德论坛
  • 电商网站建设实训报告360站长平台链接提交
  • 个性化网站建设公司个人网站备案类型
  • 腾讯建站模板上海网站开发有限公司
  • 网站和小程序的区别请问做网站怎么赚钱
  • 网站logo设计免费版在线网站开发建设准备工作
  • wordpress多站点 主题南京做网站好的公司
  • 广州 门户seo到底是做什么的
  • 可以登录国外网站吗如何用家用电脑做网站