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

南京有关制作网站的公司东莞人才市场档案接收电话

南京有关制作网站的公司,东莞人才市场档案接收电话,宁波网站建设最好的是哪家,网站支付宝怎么做访问者模式是一种行为型设计模式#xff0c;它允许你定义一系列操作#xff0c;这些操作可以应用于对象结构中的元素#xff0c;而不改变这些元素的类。通过这种方式#xff0c;可以在不改变各个元素的类的情况下#xff0c;增加新的操作。 1. 何时使用访问者模式#x…访问者模式是一种行为型设计模式它允许你定义一系列操作这些操作可以应用于对象结构中的元素而不改变这些元素的类。通过这种方式可以在不改变各个元素的类的情况下增加新的操作。 1. 何时使用访问者模式 当需要对一个复杂对象结构中的各个元素进行不同的操作时。当对象结构中的类很少发生变化但经常需要在这些类上定义新的操作时。当需要对对象结构中的元素进行多种不同的处理并且这些处理需要分散在多个类中时。 2. 访问者模式的结构 访问者模式主要包含以下角色 Visitor访问者定义了对对象结构中各个元素的操作可以通过该接口实现不同的访问者来执行不同的操作。ConcreteVisitor具体访问者实现了 Visitor 接口定义了具体的操作逻辑。Element元素定义了一个接受访问者的方法通常是一个抽象类或接口可以包含多个不同的具体子类。ConcreteElement具体元素实现了 Element 接口提供了 accept 方法的具体实现。ObjectStructure对象结构包含了一个元素的集合并提供了遍历这些元素的方法。 3. Java 代码示例 让我们通过一个简单的示例来说明访问者模式的用法。假设我们有一个图形类的对象结构其中包含了不同类型的图形如圆形和矩形。我们需要对这些图形进行不同的操作如计算面积和周长。 // 定义访问者接口 interface Visitor {void visit(Circle circle);void visit(Rectangle rectangle); }// 具体访问者计算面积和周长 class AreaCalculator implements Visitor {double totalArea 0;double totalPerimeter 0;Overridepublic void visit(Circle circle) {totalArea Math.PI * circle.getRadius() * circle.getRadius();totalPerimeter 2 * Math.PI * circle.getRadius();}Overridepublic void visit(Rectangle rectangle) {totalArea rectangle.getWidth() * rectangle.getHeight();totalPerimeter 2 * (rectangle.getWidth() rectangle.getHeight());} }// 元素接口 interface Element {void accept(Visitor visitor); }// 具体元素圆形 class Circle implements Element {private double radius;public Circle(double radius) {this.radius radius;}public double getRadius() {return radius;}Overridepublic void accept(Visitor visitor) {visitor.visit(this);} }// 具体元素矩形 class Rectangle implements Element {private double width;private double height;public Rectangle(double width, double height) {this.width width;this.height height;}public double getWidth() {return width;}public double getHeight() {return height;}Overridepublic void accept(Visitor visitor) {visitor.visit(this);} }// 对象结构 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 Main {public static void main(String[] args) {ObjectStructure objectStructure new ObjectStructure();objectStructure.addElement(new Circle(5));objectStructure.addElement(new Rectangle(3, 4));AreaCalculator areaCalculator new AreaCalculator();objectStructure.accept(areaCalculator);System.out.println(Total Area: areaCalculator.totalArea);System.out.println(Total Perimeter: areaCalculator.totalPerimeter);} } 在上面的示例中我们定义了访问者接口 Visitor并实现了具体的访问者 AreaCalculator用于计算图形的面积和周长。同时我们定义了元素接口 Element 和具体元素 Circle 和 Rectangle并在其中实现了接受访问者的方法。最后我们定义了对象结构 ObjectStructure用于存储元素并提供了接受访问者的方法。通过这样的设计我们可以轻松地对图形进行不同的操作而无需修改图形类的代码。 通过以上介绍希望你对访问者模式有了更深入的了解并能在实际项目中灵活应用。
http://www.zqtcl.cn/news/273790/

相关文章:

  • 网站建设项目的结论网站开发合同适用印花税
  • 网站建设经验与教训普陀网站建设推广
  • 12306网站是是阿里巴巴做的吗专业建网站设计公司
  • 关于申请网站建设经费的请示网推推荐信
  • 网站建设请款报告网站服务器租用价格
  • 贵州建设网老网站手机网站建设运营方案
  • 网站方案范文唐山自助建站模板
  • 金华网站制作网站建设的功能需求
  • 用iis建立网站口碑营销案例分析
  • 注册网站要求线上设计师与线下设计师的区别
  • 个人备案 网站内容网站备案如何查询
  • 宿州科技网站建设百度网站外链发布平台
  • 织梦移动网站wordpress父文章显示不全
  • 游戏攻略网站怎么做网站开发需求确认书
  • 做高大上分析的网站电商到底干嘛的
  • 物流网站哪个好网络推广就找南昌莫非传媒
  • 查看网站空间企业网站管理系统介绍
  • 重庆市工程建设信息网新网站艺术品商城网站开发
  • 上海网站制作商wordpress改主题
  • 钰鸣厦门网站建设2023热点新闻事件
  • 网络营销的主要形式有建设网站免费搭建网站哪个好
  • 建一个网站需要哪些人aso是什么意思
  • 电商网站有哪些淘宝运营培训班哪里有
  • 网站开发网站制作太原优化排名推广
  • 佛山市网站开发桥西区建设局网站
  • 怎么制作网站应用云主机上传wordpress
  • flash网站代做马鞍山网站建设制作公司
  • 温州网站的优化wordpress 注册邮箱验证失败
  • php网站开发实例视频教程宁波seo运营推广平台排名
  • 网络营销网站开发设计公司网站推广营销