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

郑州的网站建设公司有哪些如何下载网站模版

郑州的网站建设公司有哪些,如何下载网站模版,影视logo免费设计,wordpress利用工具欢迎来到设计模式系列的第十九篇文章#xff0c;本篇将介绍访问者模式。访问者模式是一种行为型设计模式#xff0c;它用于处理对象结构中不同类型的元素#xff0c;而不需要修改这些元素的类。 什么是访问者模式#xff1f; 访问者模式是一种将数据结构与数据操作分离的…欢迎来到设计模式系列的第十九篇文章本篇将介绍访问者模式。访问者模式是一种行为型设计模式它用于处理对象结构中不同类型的元素而不需要修改这些元素的类。 什么是访问者模式 访问者模式是一种将数据结构与数据操作分离的设计模式。在访问者模式中我们定义了一个访问者Visitor类该类包含一组访问方法每个方法用于处理不同类型的元素。然后我们可以为不同类型的元素定义一个元素类并将这些元素传递给访问者进行处理。 访问者模式的核心思想是在不修改元素类的情况下通过访问者来实现对元素的操作。这种模式通常用于处理复杂对象结构其中包含多种类型的元素以及需要执行不同操作的需求。 访问者模式的角色 访问者模式涉及以下几个角色 访问者Visitor访问者是一个接口或抽象类它定义了一组访问方法每个方法用于处理不同类型的元素。具体访问者Concrete Visitor具体访问者是实现访问者接口的具体类它实现了访问方法用于对元素进行具体的处理。元素Element元素是一个接口或抽象类它定义了一个接受Accept方法该方法接受一个访问者作为参数以便访问者可以对该元素进行操作。具体元素Concrete Element具体元素是实现元素接口的具体类它实现了接受方法并将自身作为参数传递给访问者。对象结构Object Structure对象结构是一个包含多种类型元素的集合它通常提供了一种方式来遍历这些元素以便访问者可以对它们进行操作。 为什么需要访问者模式 访问者模式的主要目的是将数据结构与数据操作分离使得可以在不修改元素类的情况下通过访问者来添加新的操作。这种模式适用于以下情况 元素类的稳定性高如果元素类的稳定性很高很少需要修改但需要添加新的操作那么使用访问者模式可以避免修改元素类。多种操作与元素的组合如果存在多种不同类型的操作需要与多种不同类型的元素组合访问者模式可以简化操作的管理。封装性要求高访问者模式可以将具体的操作封装在具体访问者中使得元素类保持封装性不暴露细节。 访问者模式的实现 让我们通过一个简单的示例来演示访问者模式的实现。考虑一个电商平台有不同类型的商品包括书籍、电子产品和食品。我们希望实现一个价格计算器该计算器可以根据商品的类型和折扣策略计算最终价格。 // 访问者接口 interface Visitor {void visit(Book book);void visit(ElectronicProduct electronicProduct);void visit(Food food); }// 具体访问者 class PriceCalculator implements Visitor {Overridepublic void visit(Book book) {double discount book.getCategory().equals(Fiction) ? 0.2 : 0.1;double discountedPrice book.getPrice() * (1 - discount);System.out.println(Price of book.getName() : $ discountedPrice);}Overridepublic void visit(ElectronicProduct electronicProduct) {double discountedPrice electronicProduct.getPrice() * 0.9;System.out.println(Price of electronicProduct.getName() : $ discountedPrice);}Overridepublic void visit(Food food) {double discountedPrice food.getPrice() * 0.95;System.out.println(Price of food.getName() : $ discountedPrice);} }// 元素接口 interface Element {void accept(Visitor visitor); }// 具体元素 class Book implements Element {private String name;private String category;private double price;public Book(String name, String category, double price) {this.name name;this.category category;this.price price;}public String getName() {return name;}public String getCategory() {return category;}public double getPrice() {return price;}Overridepublic void accept(Visitor visitor) {visitor.visit(this);} }class ElectronicProduct implements Element {private String name;private double price;public ElectronicProduct(String name, double price) {this.name name;this.price price;}public String getName() {return name;}public double getPrice() {return price;}Overridepublic void accept(Visitor visitor) {visitor.visit(this);} }class Food implements Element {private String name;private double price;public Food(String name, double price) {this.name name;this.price price;}public String getName() {return name;}public double getPrice() {return price;}Overridepublic void accept(Visitor visitor) {visitor.visit(this);} }// 对象结构 class ShoppingCart {private ListElement items new ArrayList();public void addItem(Element item) {items.add(item);}public void accept(Visitor visitor) {for (Element item : items) {item.accept(visitor);}} }public class VisitorPatternExample {public static void main(String[] args) {ShoppingCart cart new ShoppingCart();cart.addItem(new Book(The Great Gatsby, Fiction, 15.99));cart.addItem(new ElectronicProduct(Smartphone, 499.99));cart.addItem(new Food(Chocolate, 4.99));Visitor priceCalculator new PriceCalculator();cart.accept(priceCalculator);} } 在这个示例中我们定义了访问者接口 Visitor并实现了具体访问者 PriceCalculator。元素接口 Element 定义了 accept 方法用于接受访问者。每个具体元素类都实现了 accept 方法并将自身传递给访问者。 对象结构 ShoppingCart 包含了不同类型的商品元素并提供了 accept 方法用于遍历元素并调用访问者的方法。 在示例的 main 方法中我们创建了一个购物车 cart并向其中添加了书籍、电子产品和食品。然后我们创建了一个 PriceCalculator 访问者并将购物车传递给它进行价格计算。 访问者模式的优点 访问者模式的优点包括 符合开闭原则可以通过添加新的访问者来扩展操作而无需修改元素类。将操作与元素分离访问者模式可以将数据结构与数据操作分离使元素类保持简洁不包含操作的逻辑。支持多态行为访问者模式利用多态性使不同类型的元素可以有不同的操作增加了灵活性。 访问者模式的缺点 访问者模式的缺点包括 增加了类的数量引入访问者模式会增加访问者和元素类的数量增加了代码的复杂性。不容易理解访问者模式的结构相对复杂可能不容易理解和维护。 适用场景 访问者模式适用于以下情况 当需要对复杂对象结构中的元素进行不同类型的操作而且这些操作需要保持独立时。当元素类的稳定性高不经常修改但需要添加新的操作时。当希望在不修改元素类的情况下增加新的操作或访问方式时。 总结 访问者模式是一种行为型设计模式它将数据结构与数据操作分离通过访问者来实现对元素的操作。这种模式在处理复杂对象结构和需要多种操作的情况下非常有用。虽然它增加了类的数量和代码的复杂性但能够提供灵活性和可扩展性符合开闭原则。在实际项目中可以根据具体需求考虑是否使用访问者模式。
http://www.hkea.cn/news/14452628/

相关文章:

  • 东莞高端网站建设首页排名网络编程技术基础
  • 网站建设多长时间能学会网站后台培训
  • 美团网站界面设计90设计首页官网详情页
  • 企业建设网站目的是什么net网站建设语言
  • 墨刀可以做网站原型图吗wordpress响应式免费
  • python做网站效率中秋网页制作素材
  • 百顺网站建设辽宁建设工程信息网专家库官网
  • 黄酒的电商网页设计网站做的漂亮的商务网站
  • 一起做网店的网站张家港网站建设培训学校
  • 响应式网站模块东营百姓网
  • 网站备案下来以后怎么做网页如何设计网站
  • 比较好的平面设计网站网页设计作品特色及亮点
  • 荆州大气网站建设价格网站做关键词排名有必要吗
  • 东莞网站建设都用哪个好网站续费协议
  • 注册一个网站域名一年需要多少钱手机排行榜2022前十名
  • 网站加载速度广东建设企业网站哪家好
  • 网站加速服务如何自己做企业网站
  • 网站目录 index.html久久时间计算网
  • 单位门户网站功能wordpress部分图片
  • 三型布局的网站谷歌搜索引擎 google
  • 数据库做图书管理系统网站seo优化培训课程
  • 郑州专业做微信网站女子拿快递被感染新冠
  • 茅台技术开发公司官网seo排名优化软件有用
  • wordpress 网站 图标关键词排名查询工具有哪些
  • 企业网站 源码网站的内容做证据观点
  • 视频网站开发房产网排名
  • react做的网站有哪些怎样建个小公司的网站
  • 免费刷赞网站推广qq免费华为 wordpress
  • 建设银行 成都 招聘网站网站建设成本报表
  • 广州手机网站设计展示网站报价方案