软件设计原则

2018-01-22  本文已影响237人  liangxifeng833

一. Don’t Repeat Yourself (DRY)

当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法,并且改变现有的地方的代码让他们以一些合适的参数调用这个新的方法

二. Keep It Simple, Stupid (KISS)

复杂事情简单话

把一个事情搞复杂是一件简单的事,但要把一个复杂的事变简单,这是一件复杂的事。

三 . Program to an interface, not an implementation

注重接口,而不是实现,依赖接口,而不是实现。接口是抽象是稳定的,实现则是多种多样的

四. Command-Query Separation (CQS) – 命令-查询分离原则

五. You Ain’t Gonna Need It (YAGNI)

这个原则简而言之为——只考虑和设计必须的功能,避免过度设计。只实现目前需要的功能,在以后您需要更多功能时,可以再进行添加。

六. Law of Demeter – 迪米特法则(最少知识原则/不要和陌生人说话)

如果你想让你的狗跑的话,你会对狗狗说还是对四条狗腿说?
如果你去店里买东西,你会把钱交给店员,还是会把钱包交给店员让他自己拿?

七. 面向对象的S.O.L.I.D 原则

1. Single Responsibility Principle (SRP) – 职责单一原则

2. Open/Closed Principle (OCP) – 开闭原则

3. Liskov substitution principle (LSP) – 里氏代换原则

4. Interface Segregation Principle (ISP) – 接口隔离原则

举个例子,我们对电脑有不同的使用方式,比如:写作,通讯,看电影,打游戏,上网,编程,计算,数据等,如果我们把这些功能都声明在电脑的抽类里面,那么,我们的上网本,PC机,服务器,笔记本的实现类都要实现所有的这些接口,这就显得太复杂了。所以,我们可以把其这些功能接口隔离开来,比如:工作学习接口,编程开发接口,上网娱乐接口,计算和数据服务接口,这样,我们的不同功能的电脑就可以有所选择地继承这些接口。

5. Dependency Inversion Principle (DIP) – 依赖倒置原则

举个例子,墙面的开关不应该依赖于电灯的开关实现,而是应该依赖于一个抽象的开关的标准接口,这样,当我们扩展程序的时候,我们的开关同样可以控制其它不同的灯,甚至不同的电器。也就是说,电灯和其它电器继承并实现我们的标准开关接口,而我们的开关产商就可不需要关于其要控制什么样的设备,只需要关心那个标准的开关标准。这就是依赖倒置原则。

上一篇下一篇

猜你喜欢

热点阅读