迪米特法则java面向对象设计原则和设计模式详解

迪米特法则  时间:2021-07-09  阅读:()

java常用的设计模式一共有多少种

1、正如上一位答主所言,java中存在23种面向对象的设计模式,分别是: 1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

2、他们遵从如下原则: 1)单一职责原则 2)里式替换原则 3)依赖倒置原则 4)接口隔离原则 5)迪米特法则 6)开闭原则 3、如果非要用几个简单的字来概括这繁杂的23种设计模式那就是“高内聚,低耦合”。

4、百度--23种设计模式,边研究原理,边敲代码,其义自见。

JAVA面向对象六大原则是什么?

1) Open-Close Principle(OCP),开-闭原则,讲的是设计要对扩展有好的支持,而对修改要严格限制。

这是最重要也是最为抽象的原则,基本上我们所说的Reusable Software既是基于此原则而开发的。

其他的原则也是对它的实现提供了路径。

2) Liskov Substituition Principle(LSP),里氏代换原则,很严格的原则,规则是“子类必须能够替换基类,否则不应当设计为其子类。

”也就是说,子类只能去扩展基类,而不是隐藏或覆盖基类. 3) Dependence Inversion Principle(DIP),依赖倒换原则,“设计要依赖于抽象而不是具体化”。

换句话说就是设计的时候我们要用抽象来思考,而不是一上来就开始划分我需要哪些哪些类,因为这些是具体。

这样做有什么好处呢?人的思维本身实际上就是很抽象的,我们分析问题的时候不是一下子就考虑到细节,而是很抽象的将整个问题都构思出来,所以面向抽象设计是符合人的思维的。

另外这个原则会很好的支持OCP,面向抽象的设计使我们能够不必太多依赖于实现,这样扩展就成为了可能,这个原则也是另一篇文章《Design by Contract》的基石。

4) Interface Segregation Principle(ISP),“将大的接口打散成多个小接口”,这样做的好处很明显,我不知道有没有必要再继续描述了,为了节省篇幅,实际上我对这些原则只是做了一个小总结,如果有需要更深入了解的话推荐看《Java与模式》,MS MVP的一本巨作!^_^ 5) Composition/Aggregation Reuse Principle(CARP),设计者首先应当考虑复合/聚合,而不是继承(因为它很直观,第一印象就是“哦,这个就是OO啊”)。

这个就是所谓的“Favor Composition over Inheritance”,在实践中复合/聚合会带来比继承更大的利益,所以要优先考虑。

6) Law of Demeter or Least Knowlegde Principle(LoD or LKP),迪米特法则或最少知识原则,这个原则首次在Demeter系统中得到正式运用,所以定义为迪米特法则。

它讲的是“一个对象应当尽可能少的去了解其他对象”。

也就是又一个关于如何松耦合(Loosely-Coupled)的法则。

对象原则的优缺点有哪些?

优点是由于不知符合工艺过程,物流畅通; 由于上下工序衔接,存放量少; 物料搬运工作量少; 生产计划简单,容易于控制; 可使用专用设备和机械化、自动化搬运方法 缺点是设备发生故障时引起整个生产线中断; 产品设计变化将引起不知的重大调整; 生产线速度取决于最慢的机器; 维修和保养费用高。

java面向对象设计原则和设计模式详解

Java面向对象设计原则 1) Open-Close Principle(OCP),开-闭原则,讲的是设计要对扩展有好的支持,而对修改要严格限制。

这是最重要也是最为抽象的原则,基本上我们所说的Reusable Software既是基于此原则而开发的。

其他的原则也是对它的实现提供了路径。

2) Liskov Substituition Principle(LSP),里氏代换原则,很严格的原则,规则是“子类必须能够替换基类,否则不应当设计为其子类。

”也就是说,子类只能去扩展基类,而不是隐藏或覆盖基类. 3) Dependence Inversion Principle(DIP),依赖倒换原则,“设计要依赖于抽象而不是具体化”。

换句话说就是设计的时候我们要用抽象来思考,而不是一上来就开始划分我需要哪些哪些类,因为这些是具体。

这样做有什么好处呢?人的思维本身实际上就是很抽象的,我们分析问题的时候不是一下子就考虑到细节,而是很抽象的将整个问题都构思出来,所以面向抽象设计是符合人的思维的。

另外这个原则会很好的支持OCP,面向抽象的设计使我们能够不必太多依赖于实现,这样扩展就成为了可能,这个原则也是另一篇文章《Design by Contract》的基石。

4) Interface Segregation Principle(ISP),“将大的接口打散成多个小接口”,这样做的好处很明显,我不知道有没有必要再继续描述了,为了节省篇幅,实际上我对这些原则只是做了一个小总结,如果有需要更深入了解的话推荐看《Java与模式》,MS MVP的一本巨作!^_^ 5) Composition/Aggregation Reuse Principle(CARP),设计者首先应当考虑复合/聚合,而不是继承(因为它很直观,第一印象就是“哦,这个就是OO啊”)。

这个就是所谓的“Favor Composition over Inheritance”,在实践中复合/聚合会带来比继承更大的利益,所以要优先考虑。

6) Law of Demeter or Least Knowlegde Principle(LoD or LKP),迪米特法则或最少知识原则,这个原则首次在Demeter系统中得到正式运用,所以定义为迪米特法则。

它讲的是“一个对象应当尽可能少的去了解其他对象”。

也就是又一个关于如何松耦合(Loosely-Coupled)的法则。

设计模式: 1)适配器模式 /blog/174838 2)桥接器模式 /blog/174892 3)职责链模式 /blog/174906 4)命令模式 /blog/174896 5)装饰器模式 /blog/174840 6)外观模式 /blog/174890 7)工厂模式 /blog/174831 8)享元模式 /blog/174891 9)代理模式 /blog/174887 10)单例模式 /blog/174829 11)状态模式 /blog/174897 12)策略模式 /blog/174894 13)模板模式 /blog/174893 14)访问者模式 /blog/174914

萤光云(13.25元)香港CN2 新购首月6.5折

萤光云怎么样?萤光云是一家国人云厂商,总部位于福建福州。其成立于2002年,主打高防云服务器产品,主要提供福州、北京、上海BGP和香港CN2节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。目前萤光云推出北京云服务器优惠活动,机房为北京BGP机房,购买北京云服务器可享受6.5折优惠+51元代金券(折扣和代金券可叠加使用)。活动期间还支持申请免费试用,需提交工单开通免费试用体验...

UCloud云服务器低至年59元

最近我们是不是在讨论较多的是关于K12教育的问题,培训机构由于资本的介入确实让家长更为焦虑,对于这样的整改我们还是很支持的。实际上,在云服务器市场中,我们也看到内卷和资本的力量,各大云服务商竞争也是相当激烈,更不用说个人和小公司服务商日子确实不好过。今天有看到UCloud发布的夏季促销活动,直接提前和双十一保价挂钩。这就是说,人家直接在暑假的时候就上线双十一的活动。早年的双十一活动会提前一周到十天...

腾讯云爆款秒杀:1C2G5M服务器38元/年,CDN流量包6元起

农历春节将至,腾讯云开启了热门爆款云产品首单特惠秒杀活动,上海/北京/广州1核2G云服务器首年仅38元起,上架了新的首单优惠活动,每天三场秒杀,长期有效,其中轻量应用服务器2G内存5M带宽仅需年费38元起,其他产品比如CDN流量包、短信包、MySQL、直播流量包、标准存储等等产品也参与活动,腾讯云官网已注册且完成实名认证的国内站用户均可参与。活动页面:https://cloud.tencent.c...

迪米特法则为你推荐
ioeIOE是什么意思诺诺云代账上海的亮证节有讲到诺诺云代账,产品如何?wmiprvsewmiprvse.exe能禁用吗weakhashmap在Java中ArrayList、LinkedList、HashMap的区别是什么tvos智能电视都什么功能被广电封杀了?tvosTVOS智能电视操作系统如何越狱网页微信客户端什么叫微信网页版?和电脑版是一回事吗?暴力破解密码8位密码暴力破解要多久pci数据捕获和信号处理控制器大侠们,PCI数据捕获和信号处理控制器不能正常工作了要怎么解决啊,是不是要安装主板驱动啊?新手怎么制作表格如何学会制作表格?
cn域名 vps虚拟服务器 mach hnyd 云鼎网络 牛人与腾讯客服对话 165邮箱 福建铁通 安徽双线服务器 360云服务 512mb vul 国内域名 万网注册 国外网页代理 中国联通宽带测试 1美元 hostease 七十九刀 websitepanel 更多