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

怎么看一个网站是不是外包做的郑州中色十二冶金建设有限公司网站

怎么看一个网站是不是外包做的,郑州中色十二冶金建设有限公司网站,辽阳建设网站找哪家,展会设计公司简介定义 访问者模式#xff08;Visitor Pattern#xff09;是一种行为型设计模式#xff0c;允许你在不修改已有类的情况下向这些类添加新的功能或行为。它通过将操作的执行逻辑从对象的类中分离出来#xff0c;使得你可以在保持类的封闭性#xff08;符合开闭原则#xff…定义 访问者模式Visitor Pattern是一种行为型设计模式允许你在不修改已有类的情况下向这些类添加新的功能或行为。它通过将操作的执行逻辑从对象的类中分离出来使得你可以在保持类的封闭性符合开闭原则的前提下为不同对象定义新的操作。 UML图 Visitor访问者定义了针对元素结构中每种类型元素的访问操作通常通过重载 visit 方法实现。Element元素接口或抽象类定义了一个 accept(Visitor visitor) 方法允许访问者访问自己。ConcreteElement具体元素实现了 Element 接口并在 accept 方法中调用访问者的对应方法如 visitor.visit(this)。ConcreteVisitor对象结构可以是一个包含不同类型元素的集合它负责遍历元素并对每个元素调用 accept 方法。 优点 开闭原则可以在不修改现有类的情况下添加新的操作。单一职责原则通过将元素的操作行为封装到访问者中元素类的职责得以简化。可扩展性强可以为对象结构中的类定义新的操作而不改变类的定义。 缺点 破坏封装性访问者需要了解元素的内部细节这可能破坏类的封装性。难以维护如果元素类频繁变更则需要更新所有访问者访问者模式的维护成本可能较高。双重分派问题访问者模式的实现涉及双重分派即通过 accept 方法调用访问者的 visit 方法这使得结构变得复杂。 代码 // 定义访问者接口 interface Visitor {void visit(Book book);void visit(Fruit fruit); }// 定义元素接口 interface ItemElement {void accept(Visitor visitor); }// 具体元素类 Book class Book implements ItemElement {private String title;private double price;public Book(String title, double price) {this.title title;this.price price;}public String getTitle() {return title;}public double getPrice() {return price;}Overridepublic void accept(Visitor visitor) {visitor.visit(this);} }// 具体元素类 Fruit class Fruit implements ItemElement {private String name;private double weight;private double pricePerKg;public Fruit(String name, double weight, double pricePerKg) {this.name name;this.weight weight;this.pricePerKg pricePerKg;}public String getName() {return name;}public double getWeight() {return weight;}public double getPricePerKg() {return pricePerKg;}Overridepublic void accept(Visitor visitor) {visitor.visit(this);} }// 实现具体的访问者 class ShoppingCartVisitor implements Visitor {Overridepublic void visit(Book book) {System.out.println(Book: book.getTitle() , Price: book.getPrice());}Overridepublic void visit(Fruit fruit) {double cost fruit.getWeight() * fruit.getPricePerKg();System.out.println(Fruit: fruit.getName() , Cost: cost);} }// 测试访问者模式 public class VisitorPatternDemo {public static void main(String[] args) {ItemElement[] items new ItemElement[] {new Book(Design Patterns, 50),new Fruit(Apple, 2, 3)};Visitor visitor new ShoppingCartVisitor();for (ItemElement item : items) {item.accept(visitor); // 访问每个元素}} } 场景 对象结构稳定当你的对象结构类相对固定但需要在这个结构上添加新的操作时访问者模式非常合适。这样可以避免修改已有类的代码。需要对多个类执行相似的操作当你需要对多个不同类型的元素执行类似的操作时使用访问者模式可以集中管理这些操作。复杂的对象结构在处理复杂的对象结构时例如树形结构访问者模式可以提供清晰的访问逻辑避免在每个元素中实现相同的逻辑。数据结构和操作分离当你希望将数据结构与操作分离以便于未来扩展时访问者模式是一个良好的选择。这样可以保持类的单一职责原则。频繁变化的操作如果你的操作逻辑频繁变化但元素结构相对稳定使用访问者模式可以方便地添加新的操作而不影响已有的元素类。需要对元素进行类型判断访问者模式允许在访问者中根据元素的具体类型执行不同的操作便于类型判断和特定处理。 具体示例 编译器在编译器中抽象语法树AST需要执行不同的操作如语义分析、优化等访问者模式可以有效地管理这些操作。图形绘制在图形编辑软件中图形元素如线条、圆形、矩形等可以通过访问者模式实现不同的绘制和变换操作。文件系统在文件系统中可以定义访问者来实现文件的不同处理如压缩、加密等而不需要修改文件类的实现。账单处理在购物车或账单系统中可以使用访问者模式来处理不同类型的商品如书籍、食品等并计算总价或应用折扣。 总结 访问者模式适合于需要在多个元素上执行不同操作且希望保持代码清晰和可扩展的情况。
http://www.hkea.cn/news/14296972/

相关文章:

  • 做个购物网站多少钱室内设计方案ppt作业
  • 广东商城网站建设多少钱网页在线设计
  • 淘宝价格网站建设百度seo排名360
  • seo网站页面诊断深圳企业高端网站建设
  • 众创空间文化建设网站电子商务网站成功的关键是
  • 百度收录网站与手机版微信微商城平台
  • 广州住房和城乡建设厅网站企业管理咨询有限公司经营范围
  • 百度做玻璃钢的网站安丘市建设局网站
  • 让网站不要保存密码怎么做在线二级域名子域名查询
  • 360网站建设基本情况网站管理后台下载
  • 如何 做网站山西做二级建筑资料在哪个网站
  • 大型门户网站建设wordpress 萌
  • 做淘宝客的网站移动互联网开发作业
  • 局域网站建设基本流程app制作教程课件
  • 网站建设的详细步骤广安北京网站建设
  • wordpress主题加速插件电商网站seo
  • 怎么上网做网站软文免费发布平台
  • 网站是用php还是asp 怎么区别局域网
  • 厦门制作网页公司网络seo天津
  • 企业网站建设选题背景西安企业网站建设价格
  • 青岛天元建设集团网站爱用建站平台的优势
  • 智能建站收费标准初号一号二号三号字体wordpress
  • 做个网站需要什么设备中煤矿山建设集团网站
  • 网站开发选择框代码网站建设服务器怎么设置
  • 四川省微信网站建设推广线上营销方式6种
  • 网站开发与维护能做什么职业区域门户网站源码
  • 山河建设集团有限公司的网站广告投放面试
  • 大尺度做爰后入网站怎么往公司网站添加
  • 综合门户型网站有哪些网站建设费用入账
  • flash网站策划书手机网站和app的区别