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

天眼查网站南宁网站建设优化案例

天眼查网站,南宁网站建设优化案例,html5模板之家,推广方法策略访问者模式是一种行为型设计模式#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/14499607/

相关文章:

  • 公司可以备案几个网站wordpress的登陆地址修改密码
  • 建网站可以卖钱网站开发后端作用
  • 电商网站建设流程千万别自学软件编程
  • 东台市住房和建设局网站wordpress外网固定链接
  • 网站搜索引擎怎样做wordpress选了中文还是英文
  • 湖南网站建设找拉米拉自己小程序制作流程
  • 网站demo怎么做济宁百度推广价格
  • 做网站要什么知识条件在网站中动态效果怎么做
  • 建设教育信息网站工作总结杭州计算机公司排名
  • 企业网站响应式googleplaystore
  • 网站最新程序策划书c2c电子商务网站策划
  • 郑州建网站需要多少钱烟台专业做网站的公司
  • 福州公交集团网站建设推荐网站网页
  • 怎么看网站是谁家做的wordpress 页面连接
  • 江门电商网站设计培训wordpress mp3播放器
  • 做国内电影网站赚钱不企业网站建设的缺点
  • 成都 网站推广平台制作网站公司
  • 海淀区企业网站建设购物商城网站的运营
  • 做电器推广的网站网站可信认证必须做
  • 论述电子商务网站的建设免费网站注册 建站
  • 岳阳做网站哪家好某品牌休闲零食网站建设规划书
  • 网站界面设计的步骤有阿里云的主机了怎么做网站
  • 青岛网站建设 推荐青岛博采网络小程序自己开发难吗
  • 云南做企业网站多少钱微信加精准客源软件
  • 华为云自助建站好不好网站 公众号信息化建设工作
  • wordpress网站配置文件西安保障性住房建设投资中心网站
  • 网站 色彩方案浦东新区做网站公司
  • 专业做网站建设公司排名有什么可以接单做的网站
  • 怎么制作视频模板奇缦科技珠海网站建设优化
  • 网站建设为中心教做年糕博客网站