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

企业公司网站制作网站建设详细

企业公司网站制作,网站建设详细,地豆深圳设计公司,网站首页建设中页面用于将数据结构与数据操作分离#xff0c;使得可以在不修改数据结构的情况下#xff0c;定义新的操作。访问者模式的核心思想是#xff0c;将数据结构和操作进行解耦#xff0c;从而使得新增操作时不必修改数据结构#xff0c;只需添加新的访问者。主要目的是在不改变数据…用于将数据结构与数据操作分离使得可以在不修改数据结构的情况下定义新的操作。访问者模式的核心思想是将数据结构和操作进行解耦从而使得新增操作时不必修改数据结构只需添加新的访问者。主要目的是在不改变数据结构的情况下为数据结构中的元素添加新的操作从而满足开闭原则对扩展开放对修改封闭 访问者模式使用场景 数据结构稳定但操作频繁变化 当数据结构相对稳定但经常需要新增或修改不同类型的操作时访问者模式可以将操作与数据结构分离使得新增操作不影响现有的数据结构操作多态性 当存在一组不同类型的元素每个元素需要支持不同类型的操作时访问者模式可以将操作封装成具体访问者类每个具体访问者类负责一种操作避免污染数据结构 当希望在不改变现有数据结构的前提下向数据结构中添加新的操作时访问者模式可以避免污染数据结构。扩展性要求高 当需要添加新类型的元素或操作时访问者模式使得扩展变得相对容易只需要新增具体元素类和具体访问者类。解耦操作和数据结构 当数据结构和操作之间的耦合度较高时访问者模式可以解耦这两者使得各自可以独立变化。复杂的对象结构 当对象结构非常复杂且其中的元素类型较多时通过访问者模式可以将不同类型的操作分布到不同的具体访问者类中使代码更加清晰 访问者模式的主要角色 访问者Visitor 定义了对数据结构中各个元素进行访问的抽象方法每个方法对应一个具体元素的操作。访问者接口可能会定义多个访问方法每个方法处理不同类型的元素。具体访问者Concrete Visitor 实现了访问者接口中定义的方法对具体的元素进行操作。元素Element 定义了一个accept方法该方法接受一个访问者对象作为参数将自身传递给访问者使访问者可以对自己进行操作。具体元素Concrete Element 实现了元素接口的accept方法将自身传递给访问者以便访问者可以对自己进行操作。对象结构Object Structure 维护一个元素的集合提供了迭代元素的方法通常可以使用集合类来实现。 java代码实例 元素 public interface Animal {void accept(AnimalVisitor animalVisitor );}具体元素 // 具体动物类 class Lion implements Animal {Overridepublic void accept(AnimalVisitor visitor) {visitor.visitLion(this);} }class Elephant implements Animal {Overridepublic void accept(AnimalVisitor visitor) {visitor.visitElephant(this);} }class Dolphin implements Animal {Overridepublic void accept(AnimalVisitor visitor) {visitor.visitDolphin(this);} }访问者接口 public interface AnimalVisitor {//拜访狮子void visitLion(Lion lion);//拜访大象void visitDolphin(Dolphin dolphin);//拜访海豚void visitElephant(Elephant elephant);}具体访问者 //动物清洁工 public class AnimalCleaningVisitor implements AnimalVisitor{Overridepublic void visitLion(Lion lion) {System.out.println(cleaning the lions enclosure);}Overridepublic void visitDolphin(Dolphin dolphin) {System.out.println(cleaning the dolphins enclosure);}Overridepublic void visitElephant(Elephant elephant) {System.out.println(cleaning the elephants enclosure);} }//动物饲养员 public class AnimalFeedingVisitor implements AnimalVisitor{Overridepublic void visitLion(Lion lion) {System.out.println(Feeding the lions,ying-ying-ying);}Overridepublic void visitDolphin(Dolphin dolphin) {System.out.println(Feeding the dolphins,ying-ying-ying);}Overridepublic void visitElephant(Elephant elephant) {System.out.println(Feeding the elephants,ying-ying-ying);} }客户端 public static void main(String[] args) {Animal[] animals new Animal[]{ new Lion(), new Elephant(), new Dolphin() };AnimalVisitor feedingVisitor new AnimalFeedingVisitor();AnimalVisitor cleaningVisitor new AnimalCleaningVisitor();for (Animal animal : animals) {animal.accept(feedingVisitor);animal.accept(cleaningVisitor);}}输出 Feeding the lions,ying-ying-ying cleaning the lions enclosure Feeding the elephants,ying-ying-ying cleaning the elephants enclosure Feeding the dolphins,ying-ying-ying cleaning the dolphins enclosure访问者模式优缺点 访问者模式适用于某些特定的场景特别是在操作和数据结构之间的耦合性较高且数据结构相对稳定的情况下。在使用访问者模式时需要权衡其优点和缺点并根据实际需求进行选择。 优点 新增操作容易 访问者模式使得新增操作变得相对容易只需要新增一个新的访问者类而无需修改现有的元素类。解耦操作和数据结构 访问者模式将操作访问者类与数据结构元素类解耦使得操作可以独立变化不影响数据结构增加灵活性 可以在不改变数据结构的情况下对数据结构中的元素进行不同类型的操作从而增加了灵活性。符合单一职责原则 访问者模式将具体操作封装到具体访问者类中符合单一职责原则使得每个类的职责更加清晰。适用于稳定的数据结构 访问者模式适用于数据结构相对稳定而操作需要频繁变化的场景 缺点 增加类的数量 访问者模式引入了多个具体访问者类可能会增加类的数量使得代码变得复杂破坏封装性 访问者模式需要元素类暴露接受访问者的方法这可能会破坏元素类的封装性增加扩展难度 新增一种元素类型时需要修改所有具体访问者类这可能会增加扩展的难度。不适用于元素变化频繁的场景 如果元素的类型经常变化频繁新增元素使用访问者模式可能会增加维护成本不适用于简单场景 在简单的场景下使用访者模式可能会引入不必要的复杂性
http://wiki.neutronadmin.com/news/368314/

相关文章:

  • 网站制作哪些分类销售管理5大要素
  • 网站推广10大方法网站改版影响排名吗
  • 怎样营销网站爱站关键词挖掘
  • 昆山网站建设推广计算机应用技术好就业吗
  • 优设网网站设计评价自己怎么做网站卖东西
  • 云主机重装系统后网站重新部署吗wordpress 转发
  • 2016网站建设总结做视频网站源码
  • 网站不收录 域名问题成都网站推广 优帮云
  • 模板建站有什么优势网站开发人员工作内容
  • 做网站赚谁的钱ppt模板大全app
  • 网站后台 页面内容不显示做公众号用什么网站吗
  • 做付费软件网站网站空间哪家公司的好
  • 网站第三方评价如何做长沙做网站最好的公司
  • 苏州模板网站专业设计近的中医小程序定制
  • 开发区建设集团网站做网站买服务器大概多少钱
  • 部门子网站建设方案潍坊市建设信息网
  • 一般网站的前台功能模块视频网站怎么搭建
  • 赤峰网站建设贵阳网站制作 建设
  • 做网站现在可以挣钱吗买个网站域名要多少钱一年
  • 自己搭建个人网站的注意事项国家住房和城乡建设网站
  • 服装电子商务网站有哪些上海闵行区 网站建设
  • 做网站的不足 心得wordpress文本块
  • 顶呱呱网站开发合肥网络推广工作是做什么的
  • 第一次开票网站建设怎么开做装修哪个网站推广好
  • 穆棱建设局网站“青岛今晚12时封城”
  • 东莞哪里做网站物流公司网站建设
  • 设计的网站都有哪些成都做网站设计哪家好
  • 英文站用wordpress网站建设优缺点
  • 济南网站自然优化郴州网吧
  • 外国网站建设wordpress 数据库崩溃