(一)这尼玛是原则问题

设计模式?

干啥用的?能吃吗?

刚开始接触设计模式,我就是这样的感觉。完全不明白为啥要加这些。三层写的好好地,加着破玩意干啥。

直到,写出的代码越来越难改,自己看着都烦。

有啥好处?

代码越来越难改,说到底就是因为需求!!!需求越加越多,来回变,就会导致代码的庞大,难懂。

设计模式的出现,提高了代码的复用性,程序好修改,又好扩展添加。因为他有着自己的七大原则。

一、我只吃饭不刷碗!

我只负责吃饭,别叫我干别的事。刷碗别找我,收拾屋子别找我,干啥都别找我。

单一职责原则,一个类,他干的活只有一件事。如果一个类干活多了,这个类那天变心了,受影响的可就不止一个了。

二、别修,给我买新的!

不要修改我现在有的武器,你可以买更多武器给我。

开闭原则,一个实体(类,函数这些)。对扩展开放,对修改关闭。当有需求需要改变本身的时候,最好通过添加新的代码,来增强现有类型的行为。

可以提供一个固有的接口,然后所有可能发生变化的类实现该接口。比如提供一个手臂,在这个手臂的基础上加装加特林。突突突突突

三、儿啊,别动我的东西!

儿啊,老子留给你的产业,你可别给我动了啊。可不能让其他人用不了啊。

里氏替换原则,子类不要轻易修改父类的方法,当子类替换掉父类的时候,程序的调用、行为必须是一样的。子类替换父类,照样能用,那么父类才是真正的复用,但子类可以在父类基础上添加新的行为。

儿子别动老子的遗产,想玩新花招,自己想着奔去。

四、我能做,别管我怎么做!

我能治感冒,具体治疗流程都是按照治感冒来的。

依赖倒置原则,抽象不应该依赖于细节,细节应该依赖于抽象。高层次的模块,不应该依赖于低层次的模块。

病毒性感冒,普通感冒。都属于感冒,病毒性感冒不应该依赖普通感冒的治疗流程。应依赖感冒这个总的治疗流程。

五、只吃饭不刷碗,发扬光大!

我只吃饭不刷碗,我得把这项壮举告诉所有人。

接口隔离原则,跟单一职责类似。只使用专门多个的接口,比就使用一个接口要好。不要让接口负责太多。把职责更好的分离,到不同的接口上。

只吃饭传出去也是只吃饭。不刷碗。

六、变形金刚是拼起来的!

三个变形金刚,可以拼成一个大。我们尽量玩这个大的。

合成复用原则,一个新的对象里面使用一些已有的对象,让他变成新对象的一部分。尽量使用合成,而不使用继承。

圆形,方形都属于图形,那么他们是继承。CPU,内存可以组装成电脑,那么他们是合成。

七、好奇害死猫!

我就知道我自己办的事就行了,其他人的事。我不想知道。

迪米特法则,一个对象应当对其他的对象尽可能少的了解。一个对象尽量少的与其他对象所接触,这样互相独立,修改模块的时候就会更加容易。

不要跟”陌生人“说话。


以上

是设计模式的七大主要原则:单一职责原则,开闭原则,里氏替换原则,依赖倒置原则,接口隔离原则,合成复用原则,迪米特法则。程序开发中应尽量按照这些模式进行开发,这样代码会更容易维护。

其中又分为:创建性(6种),结构型(7种),行为型(11种)。这24种模式。

往后我会一一举例。by~

时间: 2024-11-09 16:08:56

(一)这尼玛是原则问题的相关文章

设计模式(一)之程序设计的6大原则

2017.3.31 反正我认为我写的东西如此的low,应该也不会有人理睬:暂且容忍自己的自言自语吧!我这是病有加重了,是该吃药了!可惜,没有特效药来吃,只能凭借自己的意志力扛了!谁让咱没钱,自救是最省钱最便捷的手段:抱怨过后,好多了,自救开始-- 现今大三的我,打算从设计模式抓起: 别人问你设计模式是啥玩意? 为了显得很专业,你可以谈谈的说道:"它是一套被反复使用,被多数人知晓的,经过分类编目的,代码设计经验的总结":(心道:尼玛,还好有度娘!),我感肯定,你的(学究)形象瞬间高大了许

四个基础的UI设计原则

UI设计师想要减少改稿次数,拒绝产品经理"加一道光"的需求,首先要学会不靠感觉做设计.今天这篇文章从设计原则的重要性谈起,总结了四个UI的基本设计原则,让你每一个元素界面都有理有据,适合刚入门的设计师,一起来学习ui设计吧. 图形设计大师Paul Rand(保罗·兰德)曾经说过: "设计绝不是简单的排列组合与简单地再编辑,它应当充满着价值和意义,去说明道理,去删繁就简,去阐明演绎,去修饰美化,去赞美褒扬,使其有戏剧意味,让人们信服你所言--" 上面这段话现在看来有点

MySQL 索引优化原则

一.索引优化原则 1.最左前缀匹配原则,联合索引,mysql会从做向右匹配直到遇到范围查询(>.<.between.like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整. 2.=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优

系统设计原则

以技术先进.系统实用.结构合理.产品主流.低成本.低维护量作为基本建设原则,规划系统的整体构架. 先进性: 在产品设计上,整个系统软硬件设备的设计符合高新技术的潮流,媒体数字化.压缩.解压.传输等关键设备均处于国际领先的技术水平.在满足现期功能的前提下,系统设计具有前瞻性,在今后较长时间内保持一定的技术先进性. 安全性: 系统采取全面的安全保护措施,具有防病毒感染.防黑客攻击措施,同时在防雷击.过载.断电和人为破坏方面进行加强,具有高度的安全性和保密性.对接入系统的设备和用户,进行严格的接入认证

【设计模式】六大原则总结

一.『Single Responsibility Principle』单一职责原则 单一职责原则的核心精神是:一个类,或者一个接口,最好只做一件事情,当发生变化时,他只能受到单一的影响:因为职责过多,可能引起变化的原因将会很多,这样导致职责和功能上的依赖,将严重影响其内聚性和耦合度,混乱由此而生. 单一职责的原则在现实生活中早就实践于现代公司体制与工业生产上,如公司的各个部门职责分明相互独立,生产流水线的某一环节只需关注上螺丝,而另一环节只做零件组装等等:这一原则使庞大的系统组合起来还能各司其职

设计 api, url 的原则

做微信公众号的项目,账号体系使用微信的 openid.现在增加需求,要求适应 web 端--做成普通的 web 项目.然后 url 的变化:我想给现有的 url 加上 /web/ 前缀,从而区分客户端是微信还是普通浏览器. 参考 http://www.informit.com/articles/article.aspx?p=1566460 阮一峰 api 设计原则

设计模式的六大原则

设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障. 解决方案:遵循单一职责原则.分别建立两个类T1.T2,使T1完成职责P1功能,T2完成职责P2功能.这样,当修改类T1时,不会使职责P2发生故障风险:同理,当修改T2时,也不会使职责P1发生故障风险. 说到单一职责原则,很多人都会不屑一顾

设计模式六大原则: 老板是如何减轻负担的 -- 依赖倒置原则

很多创业公司都对外宣称"扁平化管理",什么是"扁平化管理"呢?请看下面这张架构图: 因为人少,老板直接管理着采购.销售.人力跟 IT 等人员,虽然累了点,但部门少.人不多也还好. 但是随着公司规模发展,每次新加入人员老板都要去认识.沟通,出现问题还得去约出去喝个茶,老板发现自己的时间都浪费在这些琐事,容易耽搁事不说,还发挥不出更大价值. 这时他决定招一些经理替自己分别管理各个部门,自己只要管理这些经理就好了. 于是新的架构图是这样的: 老板这下子省心多了,有问题直接

迪米特法则详解--七大面向对象设计原则(6)

迪米特法则的来源: 迪米特法则又叫最少知道原则,最早是在1987年由美国Northeastern University的Ian Holland提出.类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大.于是就提出了迪米特法则.通俗的来讲,就是一个类对自己依赖的类知道的越少越好.也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息. 迪米特法则的简单定义:     只与直接的朋友通信. 首先来解