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

代理公司注册需要多少钱seo关键词推广渠道

代理公司注册需要多少钱,seo关键词推广渠道,ubuntu14.04 wordpress,网站建设与网页设计期末考试目录 二、访问者模式概念代码类图实例一:名牌运动鞋专卖店销售软件实例二:计算机部件销售软优缺点适用场合课程作业 二、访问者模式 概念 对于系统中的某些对象,它们存储在同一个集合中,具有不同的类型对于该集合中的对象&#…

目录

  • 二、访问者模式
    • 概念
    • 代码
    • 类图
    • 实例一:名牌运动鞋专卖店销售软件
    • 实例二:计算机部件销售软
    • 优缺点
    • 适用场合
    • 课程作业

二、访问者模式

概念

  1. 对于系统中的某些对象,它们存储在同一个集合中,具有不同的类型
  2. 对于该集合中的对象,可以接受一类被称为访问者的对象来访问
  3. 不同的访问者其访问方式有所不同

目的:
封装一些施加于某种数据结构元素之上的操作,一旦这些操作需要修改的话,接受这个操作的数据结构可以保持不变

模式动机:
为不同类型的元素提供多种访问操作方式,且可以在不修改原有系统的情况下增加新的操作方式

在这里插入图片描述

缺点:将所有的税率运算分布到不同的结点类使得系统不容易理解、维护与改变。
如果要增加一个新的功能,则要在很多结点类都写入新的代码,且要重新编译所有的类。
当税率变化时要修改每个结点上的calculateTax()代码。
因此,该设计的可扩展性和可维护性都不好。

解决方案:分离“Tax”类及其“calculateTax()”功能。
将所有结点的税额计算方法都从原来的类中分离出来,放入另外一个独立的类,叫做“TaxCalculation”类,设计图如下。
设计思想:将原来分布于各结点中的计算税额的方法都放在一个TaxCalculation类中。当要计算某个结点的税额时,则调用TaxCalculation中某个相应的方法进行计算。
在这里插入图片描述

代码

访问者模式(Visitor Pattern)是一种行为型设计模式,用于在不改变被访问对象的结构的情况下,定义对其元素的新操作。访问者模式将数据结构和对数据的操作分离开来,使得操作可以独立变化而不影响数据结构。

在访问者模式中,有以下几个角色:

  1. 访问者(Visitor):定义了对不同元素的访问操作,每个具体访问者都实现了对应的访问方法,用于处理特定类型的元素。

  2. 具体访问者(Concrete Visitor):实现了访问者定义的访问方法,具体处理不同类型元素的操作。

  3. 元素(Element):定义了接受访问者访问的接口,可以是抽象类或接口。

  4. 具体元素(Concrete Element):实现了元素定义的接口,具体元素可以有不同的类型,每个具体元素都可以接受访问者的访问。

  5. 对象结构(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 List<Element> 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 来实现。访问者类图如下。

实例二:计算机部件销售软

在这里插入图片描述
在这里插入图片描述

优缺点

优点:

  1. 使得增加新的访问操作变得很容易
  2. 将有关元素对象的访问行为集中到一个访问者对象中,而不是分散到一个个的元素类中。
  3. 可以跨过类的等级结构访问属于不同的等级结构的元素类
  4. 让用户能够在不修改现有类层次结构的情况下,定义该类层次结构的操作

缺点:

  1. 增加新的元素类很困难,违背了“开闭原则”的要求
  2. 破坏封装。访问者模式要求访问者对象访问并调用每一个元素对象的操作,这意味着元素对象有时候必须暴露一些自己的内部操作和内部状态,否则无法供访问者访问。

适用场合

对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作

课程作业

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.ds6.com.cn/news/57489.html

相关文章:

  • 模板网站制作服务石家庄最新疫情最新消息
  • 做网站的费用怎么做账百度西安分公司地址
  • 3D特效做首页的网站百度怎么推广自己的网站
  • 百度搜索指数如何优化关键词搜索排名
  • 网站空间和域名区别宁波seo外包服务商
  • 百度做网站投广告爱站网
  • 深圳好的网站制作哪家快seo是什么部位
  • 对于网站运营应该如何做收录网站查询
  • 国外网站建设公司音乐接单推广app平台
  • 重庆装修设计公司网站seo策划
  • 中等职业学校示范建设专题网站网站首页seo关键词布局
  • 湖南省和城乡住房建设厅网站网站搜索排名靠前
  • 多语种网站后台做网站设计哪里有
  • 凡科做的网站为什么搜不到ip网站查询服务器
  • ui网页设计师职责能力优化网站链接的方法
  • 网络公司如何开网站有什么推广的平台
  • 湖州网站建设优化方法
  • mvc4 做网站建立网站流程
  • 大连专业模板网站制作网络营销seo培训
  • 用python做网站写软文能赚钱吗
  • wordpress 二次开发企业站seo外包
  • 合肥网站建设怎么样最近实时热点新闻事件
  • 巩义网站建设指标点电商平台运营方案
  • 无锡 网站建设公司郑州专业的网站公司
  • 新疆建设兵团五师87团网站新榜数据平台
  • wordpress办公插件珠海百度seo
  • wordpress 获取指定文章标题山西seo优化
  • 电子商务网站的建设要求网站点击快速排名
  • 沉默是金歌词谐音对照seo培训公司
  • 上海平台网站建设哪家好如何免费推广自己的网站