美文网首页
大话设计模式——面向对象五大(七大?)原则

大话设计模式——面向对象五大(七大?)原则

作者: lemonxian | 来源:发表于2016-12-20 17:44 被阅读0次

字面上就那个意思我也说不来。。

然后我自己的理解是:程序中都是倡导尽量减少if语句和各种嵌套,减少代码复杂度,也方面阅读,if语句一多,条件一多,这个类的变换原因不就多了,不知道是不是这样。。

比如一个人,米饭他吃,面他也吃,饺子他也吃,牛奶他也喝,某天他说他饱了,我根本不知道他到底吃了什么。。。这对于我去了解他来说是很吃力的。。而他吃的时候,他要判断这是牛奶就用喝的,是米饭他就拿勺子,是面他就拿筷子,各种判断,上帝创造了他,而我想要彻底去了解他,就算是只了解他吃这个行为,都不可能,太复杂了。。而如果说这个人只吃面,哪天他说他吃饱了,我肯定知道他吃了面。。


人算是一件成功又失败的作品了。。

应该就是放开接口让你去拓展,但是我是有底线的,你必须按照我的规矩办事。。

比如USB接口,不管外面接入的U盘、键盘、鼠标还是风扇,只要按照接口来设计,我都让你使用。(也不知道对不对。。。)

再比如前面的运算接口Operation,如果你想要改字段肯定是不行,都是private,这就是对修改封闭,而我开放给你的getResult(),这是public,让你实现,让你拓展的。

意思就是你在调用父类对象的时候,直接把他替换成子类对象,程序还是一样好好的,这就说明你设计父类是杠杠的,要实现的话,你的子类必须尽量不要覆盖父类的方法

这个在计算机那篇有说过了。。

反正就是高层调用底层都应该依赖抽象,就是面向接口编程,用子类的对象指向父类的引用,然后用父类的引用来调用方法,这样就能实现解耦了,底层只要依赖这个抽象进行更改,就不会影响到高层的调用,高层的修改也一样,只要用其父类的引用去调用方法。

(倒转的意思不知道是不是说现实生活中或者说正常思维中抽象是依赖细节的)

偷来的。。书里没写好像

这个我没碰见过,因为我在读这本书之前很少写接口。。大致意思应该就是,一个接口里面不要有太多方法要实现,是在太多应该分成多个接口,不然以后实现类的时候要崩溃,有些实现类根本不需要实现这么多方法(感觉这个原则比较没用,这算常识吧)

CARP or CRP 也是偷来的

不理解。。不敢写  看下面链接吧

LOD or LKP 还是偷来的

就是对象和对象之间应该少联系。。就像写工具类的时候,工具类A里头的方法需要工具B才能用,想想就不合理。

先将就着。。

还有呢。。。在下面链接吧

这里写的很清楚啊。。。

还有这里的,讲的贼好

相关文章

  • 设计模式 - 七大设计原则(一)

    设计模式 - 七大设计原则(一) 概述 简单介绍一下七大设计原则:开闭原则:是所有面向对象设计的核心,对扩展开放,...

  • 设计模式的设计原则

    设计模式的设计原则 面向对象五大设计原则 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 开闭原则 设计模...

  • 面向对象的七大设计原则

    面向对象的七大设计原则文章目录面向对象的七大设计原则简述七大原则之间的关系一、开闭原则(The Open-Clos...

  • 面向对象设计原则

    面向对象设计原则 面向对象设计原则是设计模式的基础,每个设计模式都符合一一种或多种面向对象的设计原则。 常用的面向...

  • 设计模式七大原则

    面向对象七大设计原则,以及使用到这些原则的设计模式 1.合成/聚合复用原则(CARP) (有些地方,不将其列入设计...

  • 大话设计模式——面向对象五大(七大?)原则

    字面上就那个意思我也说不来。。 然后我自己的理解是:程序中都是倡导尽量减少if语句和各种嵌套,减少代码复杂度,也方...

  • 设计模式实践

    工厂模式 策略模式 状态模式 责任链模式 代理模式 单例模式 适配器模式 设计模式原则 面向对象的设计模式有七大基...

  • 面向对象:6大原则、24种设计模式

    接上一篇:面向对象介绍 为什么要学设计原则、设计模式? 若不学好经典设计模式,和通过设计模式理解面向对象的原则,你...

  • 2020顺F面经

    1、线程池的设计里体现了什么设计模式享元模式2、说说你了解什么设计模式,知道责任链设计模式吗面向对象七大原则:单一...

  • Laravel框架学习笔记之推荐理由

    laravel国外最火的框架,语法优雅。使用了大量设计模式,框架完全符合设计模式的五大基本原则(面向对象设计模式有...

网友评论

      本文标题:大话设计模式——面向对象五大(七大?)原则

      本文链接:https://www.haomeiwen.com/subject/rrxfvttx.html