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

免费网站建设推广服务网站开通会员怎么开发

免费网站建设推广服务,网站开通会员怎么开发,wordpress用什么服务,个人建什么网站最赚钱目录 二、访问者模式概念代码类图实例一#xff1a;名牌运动鞋专卖店销售软件实例二#xff1a;计算机部件销售软优缺点适用场合课程作业 二、访问者模式 概念 对于系统中的某些对象#xff0c;它们存储在同一个集合中#xff0c;具有不同的类型对于该集合中的对象#… 目录 二、访问者模式概念代码类图实例一名牌运动鞋专卖店销售软件实例二计算机部件销售软优缺点适用场合课程作业 二、访问者模式 概念 对于系统中的某些对象它们存储在同一个集合中具有不同的类型对于该集合中的对象可以接受一类被称为访问者的对象来访问不同的访问者其访问方式有所不同 目的 封装一些施加于某种数据结构元素之上的操作一旦这些操作需要修改的话接受这个操作的数据结构可以保持不变 模式动机 为不同类型的元素提供多种访问操作方式且可以在不修改原有系统的情况下增加新的操作方式 缺点将所有的税率运算分布到不同的结点类使得系统不容易理解、维护与改变。 如果要增加一个新的功能则要在很多结点类都写入新的代码且要重新编译所有的类。 当税率变化时要修改每个结点上的calculateTax()代码。 因此该设计的可扩展性和可维护性都不好。 解决方案分离“Tax”类及其“calculateTax()”功能。 将所有结点的税额计算方法都从原来的类中分离出来放入另外一个独立的类叫做“TaxCalculation”类设计图如下。 设计思想将原来分布于各结点中的计算税额的方法都放在一个TaxCalculation类中。当要计算某个结点的税额时则调用TaxCalculation中某个相应的方法进行计算。 代码 访问者模式Visitor Pattern是一种行为型设计模式用于在不改变被访问对象的结构的情况下定义对其元素的新操作。访问者模式将数据结构和对数据的操作分离开来使得操作可以独立变化而不影响数据结构。 在访问者模式中有以下几个角色 访问者Visitor定义了对不同元素的访问操作每个具体访问者都实现了对应的访问方法用于处理特定类型的元素。 具体访问者Concrete Visitor实现了访问者定义的访问方法具体处理不同类型元素的操作。 元素Element定义了接受访问者访问的接口可以是抽象类或接口。 具体元素Concrete Element实现了元素定义的接口具体元素可以有不同的类型每个具体元素都可以接受访问者的访问。 对象结构Object Structure包含元素的集合可以是一个容器也可以是一个复杂的数据结构。 下面是一个简单的访问者模式的示例代码以展示其使用方式和实现原理 // 定义元素接口 interface Element {void accept(Visitor visitor); }// 具体元素A class ConcreteElementA implements Element {public void accept(Visitor visitor) {visitor.visitConcreteElementA(this);}public String operationA() {return 具体元素A的操作;} }// 具体元素B class ConcreteElementB implements Element {public void accept(Visitor visitor) {visitor.visitConcreteElementB(this);}public String operationB() {return 具体元素B的操作;} }// 定义访问者接口 interface Visitor {void visitConcreteElementA(ConcreteElementA element);void visitConcreteElementB(ConcreteElementB element); }// 具体访问者 class ConcreteVisitor implements Visitor {public void visitConcreteElementA(ConcreteElementA element) {System.out.println(访问者对 element.operationA() 的操作);}public void visitConcreteElementB(ConcreteElementB element) {System.out.println(访问者对 element.operationB() 的操作);} }// 对象结构 class ObjectStructure {private ListElement elements new ArrayList();public void addElement(Element element) {elements.add(element);}public void removeElement(Element element) {elements.remove(element);}public void accept(Visitor visitor) {for (Element element : elements) {element.accept(visitor);}} }// 示例代码的使用 public class VisitorPatternExample {public static void main(String[] args) {// 创建对象结构ObjectStructure objectStructure new ObjectStructure();// 添加具体元素A和BobjectStructure.addElement(new ConcreteElementA());objectStructure.addElement(new ConcreteElementB());// 创建具体访问者Visitor visitor new ConcreteVisitor();// 对对象结构中的元素进行访问操作objectStructure.accept(visitor);} }在上述示例代码中访问者模式的核心在于访问者Visitor和元素Element的交互。具体的访问者定义了访问不同元素的方法而具体元素实现了接受访问者访问的接口。通过对象结构将元素组织起来并调用访问者的访问方法实现对元素的访问操作。 访问者模式的优点包括 将数据结构和操作解耦使得新增访问操作变得容易。可以对元素的操作进行扩展而不需要修改元素的结构。符合开闭原则增加新的访问者只需要新增具体访问者而不需要修改其他代码。 然而访问者模式也有一些限制和注意事项 增加新的元素可能会导致访问者接口的修改从而需要修改所有的具体访问者。对象结构中的元素类型较多时会导致具体访问者的访问方法过多增加了维护的复杂性。访问者模式适用于数据结构相对稳定但经常需要新增操作的场景对于数据结构变化频繁的场景使用访问者模式可能不合适。 总而言之访问者模式提供了一种灵活的方式来对数据结构的元素进行新的操作同时也将访问逻辑与元素的结构解耦使得系统更加灵活、可扩展和易于维护。 类图 访问者模式表示一个作用于某对象结构中的个元素的操作它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 访问者模式是一种对象行为型模式 首先分为两个部分一是元素类而是访问者类 先抽象再具体 在访问者类里要有访问元素的方法visitXXX(抽象元素父类做参数)之类的 在元素类里要有接受访问的方法比如accept(抽象访问者父类做参数)等 实例一名牌运动鞋专卖店销售软件 在客户程序中将直接创建运动鞋子类与访问者子类的对象然后直接调用运动鞋子类的 accept 方法。根据用户输入的所购买鞋的数量和单价来计算总价和获得相应特点的功能分别由 Visitor 类的两个子类 PriceVisitor 和 ShoeInfoVisitor 来实现。访问者类图如下。 实例二计算机部件销售软 优缺点 优点 使得增加新的访问操作变得很容易。将有关元素对象的访问行为集中到一个访问者对象中而不是分散到一个个的元素类中。可以跨过类的等级结构访问属于不同的等级结构的元素类。让用户能够在不修改现有类层次结构的情况下定义该类层次结构的操作。 缺点 增加新的元素类很困难违背了“开闭原则”的要求。破坏封装。访问者模式要求访问者对象访问并调用每一个元素对象的操作这意味着元素对象有时候必须暴露一些自己的内部操作和内部状态否则无法供访问者访问。 适用场合 对象结构中对象对应的类很少改变但经常需要在此对象结构上定义新的操作 课程作业
http://www.w-s-a.com/news/273316/

相关文章:

  • 佛山高端网站免费招聘网站建设
  • 申请网站就是做网站吗wordpress tag 优化
  • 建站系统排行榜菏泽机关建设网站
  • 网站群建设费用科技通信网站模板下载
  • 网站开发的流程是怎样的自己做自媒体在哪个网站比较好
  • 网站的html代码在哪网页线上开发制作
  • 免费商用自媒体图片网站做网站好的公司有哪些
  • 阿雷网站建设公司中国建筑考试网官网首页
  • 厦门网站制作网页无法跳转到建设银行网站
  • 怎么建设自己网站简述网页布局的几种方法
  • 软文营销文案100篇如何优化搜索引擎的搜索功能
  • 做网站创意杭州家具网站建设方案
  • 福州seo网站推广优化乐清建网站
  • 莆田cms建站模板简述网站设计流程
  • 班级网站建设组织机构建设注册中心网站首页
  • 即墨网站建设地址怎么在文档中做网站一点就开
  • 做网站联系方式互联网行业分析
  • 杭州网站建设索q479185700高淳网站建设
  • 有什么做任务拿钱的网站精准的搜索引擎优化
  • 洛阳有建社网站的吗电力建设工程质量监督总网站
  • 网站404报错热水器网站建设 中企动力
  • 网站降权恢复淘宝 网站建设
  • 安州区建设局网站台州优秀关键词优化
  • 网站假设教程湖南微信管理系统
  • 网站备案属于公司哪一块哪个网站是专门做封面素材
  • 广州个人做网站内江建设局网站
  • 网站开发 360百科大连哪里有手机自适应网站建设维护
  • 如何查网站pv网站功防教程
  • 建设银行网站信息补充营销推广的作用
  • 网站见建设seo外链自动群发工具