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

撤销网站备案申请书网站栏目及内容

撤销网站备案申请书,网站栏目及内容,网站怎么做直播,可以自己制作头像的网站迪米特原则#xff08;Law of Demeter#xff0c;简称LoD#xff09;#xff0c;也被称为最少知识原则#xff08;Least Knowledge Principle#xff0c;LKP#xff09;#xff0c;是面向对象设计中的一个重要原则。其核心思想是#xff1a;一个对象应该对其他对象有最…        迪米特原则Law of Demeter简称LoD也被称为最少知识原则Least Knowledge PrincipleLKP是面向对象设计中的一个重要原则。其核心思想是一个对象应该对其他对象有最少的了解即一个对象应该尽可能少地了解其直接对象之外的任何对象。本文将详细探讨迪米特原则的理论理解及其在Java实践中的应用。 一、迪米特原则的理论理解 迪米特原则的核心在于降低类之间的耦合度提高模块的相对独立性。通过封装和信息隐藏对象之间的通信应该通过抽象层进行以减少对象之间的直接依赖。这种设计方式能够提高系统的可维护性和可扩展性降低代码的依赖性减少系统中的风险因素。 降低耦合度 耦合度是指不同模块之间相互依赖的程度。过高的耦合度会导致代码难以维护和扩展。迪米特原则通过限制对象之间的直接通信促使开发者使用接口或中间层来进行通信从而有效地降低系统各部分之间的耦合度。 提高内聚力 内聚力是指模块内部各元素间的紧密程度。高内聚力的模块功能更加专一易于理解和修改。迪米特原则通过限制对象间的直接交流促使开发者将功能相似的代码组织在一起提高了模块的内聚力。 便于测试和重用 通过遵循迪米特原则每个类的功能更加单一和明确这有助于对单个功能进行独立的测试从而提高代码的可测试性。同时减少类之间的直接依赖关系使得类更加容易重用。 增强系统的可扩展性 通过降低类之间的耦合迪米特原则使得系统的某个部分在不改变其他部分的情况下可以进行修改或扩展从而增强了系统的可扩展性。 二、迪米特原则的实践 在Java开发中迪米特原则可以通过多种方式来实现包括中介者模式、控制反转IoC和依赖注入DI、事件驱动编程以及模块化设计等。下面通过具体的代码示例来展示迪米特原则的实践。 示例一中介者模式 当一个类需要与多个类进行交互时可以使用中介者模式来降低类之间的直接依赖。中介者负责协调各个类之间的交互从而减少类之间的直接通信。 // 中介者接口 interface Mediator {void send(String message, String colleagueName); }// 具体中介者类 class ConcreteMediator implements Mediator {private ColleagueA colleagueA;private ColleagueB colleagueB;public void setColleagueA(ColleagueA colleagueA) {this.colleagueA colleagueA;}public void setColleagueB(ColleagueB colleagueB) {this.colleagueB colleagueB;}Overridepublic void send(String message, String colleagueName) {if (A.equals(colleagueName)) {colleagueA.receive(message);} else if (B.equals(colleagueName)) {colleagueB.receive(message);}} }// 同事类A class ColleagueA {private Mediator mediator;public void setMediator(Mediator mediator) {this.mediator mediator;}public void send(String message) {mediator.send(message, B);}public void receive(String message) {System.out.println(ColleagueA received: message);} }// 同事类B class ColleagueB {private Mediator mediator;public void setMediator(Mediator mediator) {this.mediator mediator;}public void send(String message) {mediator.send(message, A);}public void receive(String message) {System.out.println(ColleagueB received: message);} }// 测试类 public class MediatorPatternDemo {public static void main(String[] args) {Mediator mediator new ConcreteMediator();ColleagueA colleagueA new ColleagueA();ColleagueB colleagueB new ColleagueB();mediator.setColleagueA(colleagueA);mediator.setColleagueB(colleagueB);colleagueA.setMediator(mediator);colleagueB.setMediator(mediator);colleagueA.send(Hello B);colleagueB.send(Hello A);} } 在这个示例中ColleagueA 和 ColleagueB 通过 Mediator 进行通信而不是直接调用对方的方法。这降低了类之间的耦合度提高了系统的可维护性和可扩展性。 示例二控制反转IoC和依赖注入DI 控制反转和依赖注入允许我们将依赖关系外部化并由容器或框架来管理。这样类之间的依赖关系就变得更加灵活降低了直接耦合。 // 接口 interface Service {void execute(); }// 具体服务类 class ConcreteService implements Service {Overridepublic void execute() {System.out.println(Service executed);} }// 客户端类 class Client {private Service service;// 构造器注入public Client(Service service) {this.service service;}public void doSomething() {service.execute();} }// 测试类 public class IoCDemo {public static void main(String[] args) {Service service new ConcreteService();Client client new Client(service);client.doSomething();} } 在这个示例中Client 类通过构造器注入的方式依赖 Service 接口而不是直接依赖 ConcreteService 类。这使得 Client 类更加灵活可以轻松地替换 Service 的实现。 示例三迪米特原则的反面示例与推荐用法 下面通过一个业务场景来展示迪米特原则的反面示例和推荐用法。 反面示例 // 经理类 public class Manager {public void checkGoodsCount(Staff staff) {ListGood goodList new ArrayList();for (int i 0; i 20; i) {goodList.add(new Good());}staff.checkCount(goodList);} }// 员工类 public class Staff {public void checkCount(ListGood goodList) {System.out.println(商品数量为: goodList.size());} }// 商品类 public class Good { }// 测试类 public class Main {public static void main(String[] args) {Manager manager new Manager();Staff staff new Staff();manager.checkGoodsCount(staff);} } 在这个反面示例中Manager 类直接创建了 Good 对象的列表并将其传递给 Staff 类。这违反了迪米特原则因为 Manager 类不应该了解 Good 类的具体实现。 推荐用法 // 经理类 public class Manager {public void checkGoodsCount(Staff staff) {staff.checkCount();} }// 员工类 public class Staff {public void checkCount() {ListGood goodList new ArrayList();for (int i 0; i 20; i) {goodList.add(new Good());}System.out.println(商品数量为: goodList.size());} }// 商品类 public class Good { }// 测试类 public class Main {public static void main(String[] args) {Manager manager new Manager();Staff staff new Staff();manager.checkGoodsCount(staff);} } 在推荐用法中Manager 类不再直接创建 Good 对象的列表而是将创建列表的责任交给了 Staff 类。这样Manager 类只需要知道 Staff 类的接口而不需要了解 Good 类的具体实现从而遵循了迪米特原则。 三、总结 迪米特原则是面向对象设计中的一个重要原则它强调一个对象应该对其他对象有最少的了解。通过降低类之间的耦合度提高模块的相对独立性迪米特原则有助于我们设计出更加灵活、可维护性更高的软件系统。在Java开发中我们可以利用中介者模式、控制反转IoC和依赖注入DI、事件驱动编程以及模块化设计等技术来实现迪米特原则。然而过分追求迪米特原则可能导致设计过于复杂增加不必要的抽象层和中介者。因此在使用迪米特原则时应适度应用结合其他设计原则关注实际场景避免盲目追求理论上的完美设计。
文章转载自:
http://www.morning.qphgp.cn.gov.cn.qphgp.cn
http://www.morning.wqjpl.cn.gov.cn.wqjpl.cn
http://www.morning.xirfr.cn.gov.cn.xirfr.cn
http://www.morning.sthgm.cn.gov.cn.sthgm.cn
http://www.morning.hqxyt.cn.gov.cn.hqxyt.cn
http://www.morning.snnb.cn.gov.cn.snnb.cn
http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn
http://www.morning.nbqwt.cn.gov.cn.nbqwt.cn
http://www.morning.jljiangyan.com.gov.cn.jljiangyan.com
http://www.morning.ybyln.cn.gov.cn.ybyln.cn
http://www.morning.wqfzx.cn.gov.cn.wqfzx.cn
http://www.morning.gassnw.com.gov.cn.gassnw.com
http://www.morning.skdrp.cn.gov.cn.skdrp.cn
http://www.morning.bhwll.cn.gov.cn.bhwll.cn
http://www.morning.kjgdm.cn.gov.cn.kjgdm.cn
http://www.morning.mkccd.cn.gov.cn.mkccd.cn
http://www.morning.rfrx.cn.gov.cn.rfrx.cn
http://www.morning.kaoshou.net.gov.cn.kaoshou.net
http://www.morning.zkpwk.cn.gov.cn.zkpwk.cn
http://www.morning.fnfxp.cn.gov.cn.fnfxp.cn
http://www.morning.qwmdx.cn.gov.cn.qwmdx.cn
http://www.morning.fsbns.cn.gov.cn.fsbns.cn
http://www.morning.nynlf.cn.gov.cn.nynlf.cn
http://www.morning.rfjmy.cn.gov.cn.rfjmy.cn
http://www.morning.kzslk.cn.gov.cn.kzslk.cn
http://www.morning.uycvv.cn.gov.cn.uycvv.cn
http://www.morning.rkdzm.cn.gov.cn.rkdzm.cn
http://www.morning.bxhch.cn.gov.cn.bxhch.cn
http://www.morning.jfcbs.cn.gov.cn.jfcbs.cn
http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn
http://www.morning.lydtr.cn.gov.cn.lydtr.cn
http://www.morning.qhczg.cn.gov.cn.qhczg.cn
http://www.morning.swyr.cn.gov.cn.swyr.cn
http://www.morning.ryztl.cn.gov.cn.ryztl.cn
http://www.morning.grbgn.cn.gov.cn.grbgn.cn
http://www.morning.yprjy.cn.gov.cn.yprjy.cn
http://www.morning.lgrkr.cn.gov.cn.lgrkr.cn
http://www.morning.ymwnc.cn.gov.cn.ymwnc.cn
http://www.morning.chkfp.cn.gov.cn.chkfp.cn
http://www.morning.ndxss.cn.gov.cn.ndxss.cn
http://www.morning.hwxxh.cn.gov.cn.hwxxh.cn
http://www.morning.nwjzc.cn.gov.cn.nwjzc.cn
http://www.morning.pngfx.cn.gov.cn.pngfx.cn
http://www.morning.lmdfj.cn.gov.cn.lmdfj.cn
http://www.morning.dycbp.cn.gov.cn.dycbp.cn
http://www.morning.ryztl.cn.gov.cn.ryztl.cn
http://www.morning.ldzss.cn.gov.cn.ldzss.cn
http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn
http://www.morning.pndhh.cn.gov.cn.pndhh.cn
http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn
http://www.morning.kqpxb.cn.gov.cn.kqpxb.cn
http://www.morning.lltdf.cn.gov.cn.lltdf.cn
http://www.morning.btjyp.cn.gov.cn.btjyp.cn
http://www.morning.cfnsn.cn.gov.cn.cfnsn.cn
http://www.morning.fpzpb.cn.gov.cn.fpzpb.cn
http://www.morning.zpqk.cn.gov.cn.zpqk.cn
http://www.morning.mfbcs.cn.gov.cn.mfbcs.cn
http://www.morning.msgcj.cn.gov.cn.msgcj.cn
http://www.morning.plznfnh.cn.gov.cn.plznfnh.cn
http://www.morning.zwzwn.cn.gov.cn.zwzwn.cn
http://www.morning.fkyqt.cn.gov.cn.fkyqt.cn
http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn
http://www.morning.bpmdh.cn.gov.cn.bpmdh.cn
http://www.morning.sgbss.cn.gov.cn.sgbss.cn
http://www.morning.qbmpb.cn.gov.cn.qbmpb.cn
http://www.morning.xwlmr.cn.gov.cn.xwlmr.cn
http://www.morning.zyffq.cn.gov.cn.zyffq.cn
http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn
http://www.morning.wjhpg.cn.gov.cn.wjhpg.cn
http://www.morning.qtkfp.cn.gov.cn.qtkfp.cn
http://www.morning.fnywn.cn.gov.cn.fnywn.cn
http://www.morning.xxiobql.cn.gov.cn.xxiobql.cn
http://www.morning.qsfys.cn.gov.cn.qsfys.cn
http://www.morning.fdhwh.cn.gov.cn.fdhwh.cn
http://www.morning.hwxxh.cn.gov.cn.hwxxh.cn
http://www.morning.mdwb.cn.gov.cn.mdwb.cn
http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn
http://www.morning.yrbhf.cn.gov.cn.yrbhf.cn
http://www.morning.njntp.cn.gov.cn.njntp.cn
http://www.morning.mwqbp.cn.gov.cn.mwqbp.cn
http://www.tj-hxxt.cn/news/274225.html

相关文章:

  • 贵阳专用网站建设百度收录入口查询注意事项
  • 自建网站免费教程网页制作基础教程课程标准
  • 平台关键词排名优化漳州优化网站建设
  • 中建铁路建设有限公司网站信息流优化师培训机构
  • 网站建设网络推广外包服务商11月将现新冠感染高峰
  • 做章网站wordpress人个网站
  • 做紧固件上什么网站上海网络平台有哪些
  • 恩施市建设银行网站网站制作的企业有哪些
  • 中山做网站费用wordpress+论坛类
  • 公司做网站做什么类型的网站好专业的大良网站设计
  • 公司网站的具体步骤wordpress清空登录
  • 备案信息查询官网seo学校培训班
  • 个人做门户网站网站登录后台地址
  • 企业网站建设一般考虑哪些因素?近期国外重大新闻事件
  • 吴江市中云建设监理有限公司网站厦门网站建设制作多少钱
  • 企业网站页头背景图个人可以做自媒体网站吗
  • 网站规划开发前景关键词排名查询软件
  • 网站程序制作软件怎样做p2p网站
  • 给网站做网络安全的报价线上广告形式有哪些
  • 网站开发语言比例网站制作公司 郑州
  • 山东网站建设哪家好搜索引擎网址
  • 网站自动推广软件正规app软件开发报价
  • 网站设计尺寸规范网页制作教程零基础合集
  • 西安网站建设qq群号珠海找工作哪个网站好
  • 漳平网站建设python怎么学
  • 高清网站建设的好处网站qq一键登录
  • 沧州网站建设申梦钙网logo设计
  • 网站网站是怎么做的温州优化售后
  • html5 网站开发 适配wordpress收不到
  • 百度做公司网站多少钱制作网站公司图片