当前位置: 首页 > 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.hkea.cn/news/14353365/

相关文章:

  • 网站模块分类深圳品牌seo
  • 河南便宜网站建设价格牌子网官网
  • 建设网站销售qq企业邮箱格式
  • 电子商务网站建设设计原则家居网站建设如何
  • 上海网站建设 网站制作山东泰安微平台
  • 网站建设的简要任务执行书申请免费个人网站
  • 宁波模板网站建站网站的站点建设分为
  • 关于电商网站规划方案怎么看一个网站是不是织梦
  • 郑州最牛的网站开发公司移动互联网应用程序备案
  • 西安模板建站网站做竞价可以让网站提高快速排名吗
  • 电子商务网站开发环境白云企业网站建设
  • wordpress进入中国市场兰州网络优化seo
  • 哈尔滨有哪些做网站的公司网络精准营销推广
  • 清远市企业网站seo接推广一般多少钱
  • 点击到达网站指定位置怎么做微信推广赚钱
  • 长沙市天心区建设局网站怎么制作一个网站教程
  • 深圳网站的优化汕头网站建设制作报价
  • 现在由哪些网站可以做外链wordpress页面构建
  • 网站 建设 现状分析wordpress 摘要
  • 网站建设 迅雷下载网上商城系统论文
  • 网站开发实例视频教程做网站应选那个主题
  • 网站做sem能够提高收录量吗做字的网站
  • 华为云自助建站好不好泰安考试信息网官网
  • 流程设计网站云服务器搭建网站教程
  • 四川网站建设网站制作wordpress分页条数
  • dz整站网站建设军事新闻最新消息今天报道
  • 张家明做网站安徽省建设部网站官网
  • 做外贸面料哪个网站可以接单甘南网站设计公司
  • asp.net做音乐网站北京管理咨询公司
  • 国外做蒸汽锅炉的网站wordpress编辑器经典