SOLID设计原则
Sleeping-Cat
这个作者很懒,什么都没留下…
展开
-
如何理解接口隔离原则?
接口隔离原则: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。(图片来自网络)见上图,该把接口细分到3个接口中去,保证每个类都只实现它需要的接口。接口隔离原则与单一职责原则有什么区别呢?单一职责原则,是指一个类只应该响应一个变化。比如一个赛马的程序,需要两个功能一是记每匹马跑的圈数,另一个是计算谁是对每匹马计算最终得分。 这两个功能有一点的联系,原创 2017-02-08 11:11:39 · 3718 阅读 · 0 评论 -
如何理解单一职责原则?
“一个类仅有一个职责”或者“引起类变化的只有一个原因”,这就是单一职责原理。类只因一个原因而变化,这仿佛是一种新的类定义方式。当接触面向对象编程时,试图把一个类对比为一个事物,事物具备的功能都是这个类的操作。比如,一根尺子,既可以用来打学生手板,也可以用来丈量布匹。而在单一职责原理下,尺子的两个功能就是引起这个类变化的两个原因,就应该写成两个类。如果混在一起写,在修改一个职原创 2017-02-06 23:16:06 · 4728 阅读 · 0 评论 -
如何理解开放封闭原则?
开闭原则,顾名思义,对扩展开放,对修改封闭。在谈细一点,对什么扩展开放?对什么修改封闭?还是用经典的Client和Server举例吧。客户端使用服务器,或者叫使用服务器提供的服务。在左边的图,客户端直接依赖于服务。这会造成,一旦由另一个提供程序服务,则客户端也需要修改。当增加了Client Interface后,这个系统对增加另一种服务是开放的,对修改原有的调用代码是封闭的。Clien原创 2017-02-06 21:09:17 · 3025 阅读 · 1 评论 -
高内聚,低耦合与SOLID原则
软件开发一直都吼着,要开发高内聚,低耦合的代码。先谈谈,什么是高内聚?内聚性,又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。用大白话说,高内聚就是模块的独立性强,功能明确、单一,一个模块只做一件事情。低耦合呢?耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块原创 2017-02-08 11:31:15 · 1724 阅读 · 0 评论 -
如何理解里氏替换原则?
Liskov替换原则核心就是子类能完全替换它的基类。看上去这个应该与生俱来的能力。面向对象的核心多态,不就是靠这一条实现的。或许从没有遇到的过子类改写基类的情况。程序世界可能出现这种情况,而且在不经意之间出现这种情况。比如“鸟”是基类,这个基类有一个“飞翔”的行为。当“鸵鸟”继承了“鸟”,这就会引起麻烦,覆写基类“飞翔”的行为吧,这样就不再符合里氏替换原则。“鸵鸟”是不能替换它的基类了原创 2017-02-06 20:37:19 · 4004 阅读 · 4 评论 -
如何理解依赖倒置原则?
------ 读书心得 -------通常情况的设计都是高层模块依赖于低层模块。这样看似顺理成章,低层模块不怎么变动,高层模块调用低层模块。但是事实上,事物总是在变化,经常低层模块变化,引起高层一系列的变化。看看依赖倒置是怎样解决这个问题的?它的两个原则:1. 高层模块不该依赖于低层模块, 二者都该依赖于抽象2. 抽象不应该依赖于细节,细节应该依赖于抽象看下图,在层之原创 2017-02-06 19:18:52 · 7636 阅读 · 3 评论