迪米特法则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

Megalayer(48元)新增 美国CN2优化线路特价服务器和VPS方案

Megalayer 商家算是新晋的服务商,商家才开始的时候主要是以香港、美国独立服务器。后来有新增菲律宾机房,包括有VPS云服务器、独立服务器、站群服务器等产品。线路上有CN2优化带宽、全向带宽和国际带宽,这里有看到商家的特价方案有增加至9个,之前是四个的。在这篇文章中,我来整理看看。第一、香港服务器系列这里香港服务器会根据带宽的不同区别。我这里将香港机房的都整理到一个系列里。核心内存硬盘IP带宽...

Friendhosting四五折促销,VPS半年付7.5欧元起

Friendhosting发布了针对“系统管理日”(每年7月的最后一个星期五)的优惠活动,针对VPS主机提供55%的优惠(相当于四五折),支持1-6个月付款使用,首付折扣非永久,优惠后最低套餐首半年7.18欧元起。这是一家保加利亚主机商,成立于2009年4月,商家提供VDS和独立服务器租用等,数据中心目前可选美国洛杉矶、保加利亚、乌克兰、荷兰、拉脱维亚、捷克和波兰等8个地区机房。下面以最低套餐为例...

昔日数据月付12元起,湖北十堰机房10M带宽月付19元起

昔日数据怎么样?昔日数据是一个来自国内服务器销售商,成立于2020年底,主要销售国内海外云服务器,目前有国内湖北十堰云服务器和香港hkbn云服务器 采用KVM虚拟化技术构架,湖北十堰机房10M带宽月付19元起;香港HKBN,月付12元起; 此次夏日活动全部首月5折促销,有需要的可以关注一下。点击进入:昔日数据官方网站地址昔日数据优惠码:优惠码: XR2021 全场通用(活动持续半个月 2021/7...

迪米特法则为你推荐
移动测速什么是流动测速1u1U的 定义onboardon board是什么意思?oracle索引oracle表加索引有什么用? 请举一个例子说明谢谢郭凡生慧聪网公司怎么样索引超出了数组界限什么是索引超出了数组界限inode智能客户端inode智能客户端无法正常启动,根本开都开不了spawning在c语言编译时出现Error spawning cl.exe,是怎么回事?waves插件MuseScore vst插件怎么安装杭州营销型网站苏州网站推广有哪些?
hawkhost 安云加速器 正版win8.1升级win10 北京主机 浙江独立 linux空间 gspeed 135邮箱 静态空间 服务器是干什么的 cdn加速是什么 如何注册阿里云邮箱 厦门电信 申请网站 lamp的音标 如何登陆阿里云邮箱 宿迁服务器 杭州电信宽带 月付空间 服务器机柜 更多