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

PHP网站名字建工集团领导班子名单

PHP网站名字,建工集团领导班子名单,有做浏览单的网站,东营网约车最新消息迪米特法则,也称为最少知识原则(Law of Demeter),是面向对象设计中的一个原则,旨在降低对象之间的耦合性,提高系统的可维护性和可扩展性。该原则强调一个类不应该直接与其它不相关的类相互交互,…

迪米特法则,也称为最少知识原则(Law of Demeter),是面向对象设计中的一个原则,旨在降低对象之间的耦合性,提高系统的可维护性和可扩展性。该原则强调一个类不应该直接与其它不相关的类相互交互,而是通过少数几个密切相关的类来进行通信。这有助于减少类之间的依赖关系,降低代码的耦合性,使得系统更加灵活和易于维护。
迪米特法则的核心思想可以概括为以下几点:

  1. 一个对象应该尽量少地了解其他对象的内部结构和实现。
  2. 一个对象只与其直接朋友(即与其关联最密切的对象)进行交互。
  3. 避免在一个类中引入不必要的依赖关系,尽量保持类之间的解耦。

以下是一个示例代码来说明迪米特法则:
假设我们有一个电商系统,包含了顾客(Customer)、订单(Order)和商品(Product)这三个类。

class Product {private String name;private double price;public Product(String name, double price) {this.name = name;this.price = price;}public double getPrice() {return price;}
}class Order {private List<Product> products = new ArrayList<>();public void addProduct(Product product) {products.add(product);}public double calculateTotalPrice() {double totalPrice = 0;for (Product product : products) {totalPrice += product.getPrice();}return totalPrice;}
}class Customer {private List<Order> orders = new ArrayList<>();public void addOrder(Order order) {orders.add(order);}public void printTotalSpent() {double totalSpent = 0;for (Order order : orders) {totalSpent += order.calculateTotalPrice();}System.out.println("Total amount spent: " + totalSpent);}
}

在这个示例中,迪米特法则的考虑并不充分。例如,在Customer类的printTotalSpent方法中,我们直接访问了Order类的内部结构和Product类的内部结构。这会导致Customer类与Order类和Product类之间存在紧耦合的关系,违反了迪米特法则。

符合迪米特法则的改进示例:

class Product {private String name;private double price;public Product(String name, double price) {this.name = name;this.price = price;}public double getPrice() {return price;}
}class Order {private List<Product> products = new ArrayList<>();public void addProduct(Product product) {products.add(product);}public double calculateTotalPrice() {double totalPrice = 0;for (Product product : products) {totalPrice += product.getPrice();}return totalPrice;}
}class Customer {private List<Order> orders = new ArrayList<>();public void addOrder(Order order) {orders.add(order);}public double calculateTotalSpent() {double totalSpent = 0;for (Order order : orders) {totalSpent += order.calculateTotalPrice();}return totalSpent;}
}class ShoppingCart {private List<Product> products = new ArrayList<>();public void addProduct(Product product) {products.add(product);}public double calculateTotalPrice() {double totalPrice = 0;for (Product product : products) {totalPrice += product.getPrice();}return totalPrice;}
}

在改进后的示例中,Customer类不再直接与Order类和Product类的内部结构交互,而是通过添加一个calculateTotalSpent方法来计算总花费。同时,引入了ShoppingCart类来管理购物车中的商品,避免了Customer类与Product类的直接交互。

http://www.yayakq.cn/news/797096/

相关文章:

  • 响应式网站微博视频网店装修流程
  • 网站做网站反向代理违法网站建设模板可用吗
  • 网站建设公司选择哪家好优化网站排名如何
  • 百度网站流量查询drupal 做的网站
  • 网站开发行业发展前景微信支付 网站备案
  • 网站哪家做的比较好为什么做电商网站
  • app手机端电子商务网站功能临海网站开发公司电话
  • 开发手机端网站模板网站怎么提交收录
  • 做游戏网站的前景做视频网站可以自学吗
  • 宣城做网站公司产品企业网站
  • 网站推广服务网站连锁增城电子商务网站建设
  • 做资金盘 互助盘的网站上海公关公司有哪些
  • 重庆企业网站推广代理宁波百度推广优化
  • 搜讯网站开发洛阳伟创科技
  • 网站建设招标无锡设计兼职在哪平台可以接单
  • 苏州专业高端网站建设机构小企业网站建设哪家便宜
  • 昆明网站制作在线推广策略是什么意思
  • 商城网站微信支付接口申请肇庆市seo网络推广
  • 汕头网站建设公司免费影视剧网站
  • 温州网站设计制作课程千图网素材免费
  • 常州做网站麦策智能建造师证书有用吗
  • 自己怎么做简单的网站免费域名注册网站哪个好
  • 闸北做网站公司网站服务公司业务范围包括
  • 电子商城网站建设与维护传统文化网站建设
  • 汕头市作风建设的网站河北网站设计推荐柚米科技
  • 银川住房和城乡建设厅网站wordpress 纯代码 雪花
  • 临猗县 保障住房和建设住建网站网站下载端口建设
  • 汽车装饰网站模板建设工程人员押证在哪个网站查
  • 做神马网站优化快速排名软件国内网站开发 框架
  • 建站宝盒做的网站保定网站建设浩森宇特