必威体育Betway必威体育官网
当前位置:首页 > IT技术

面向对象的五个设计原则:SOLID

时间:2019-10-16 00:13:20来源:IT技术作者:seo实验室小编阅读:73次「手机版」
 

面向对象设计原则

1.    SOLID

(1)SRP(The Single Responsibility principle)单一责任原则

(2)OCP(The Open-Closed Principle)开放-封闭原则

(3)LSP(The Liskov Substitution Principle)Liskov替换原则

(4)ISP (The Interface Segregation Principle)接口聚合原则

(5)DIP(The Dependency Inversion Principle)依赖转置原则

2.    详细介绍:

(1)SRP(The Single Responsibility Principle)单一责任原则

Responsibility:a reason for change

SRP:

   -不应有多于一个的原因使得一个类发生变化

   -一个类,一个责任   

如果一个类包含了多个责任,那么将引起不良后果

-引入额外的包,占据资源

-导致频繁的重新配置和部署

这是最简单的原则,却是最难做好的原则

违反SRP的案例:

   

(2)OCP(The Open-Closed Principle)开放-封闭原则

开放和封闭,指的是:

a.    对扩展性的开放:

 模块的行为应是可扩展的,从而该模块可表现出新的行为以满足需求的变化

b.    对修改的封闭:

  模块自身的代码是不应被修改的,扩展模块的一般途径是修改内部实现。

关键的解决方案:抽象技术,使用继承(inheritance)和组成(composition

案例:

(3)LSP(The Liskov Substitution Principle)Liskov替换原则

LSP:子类型必须能够替换其基类型

派生类必须能通过其基类的接口使用,客户端无需了解二者之间的差异

详见之前写的LSP博客

(4)ISP (The Interface Segregation Principle)接口聚合原则

客户端不应依赖于它们不需要的方法。

“fat”的接口有很多缺点,不够聚合。

“fat”接口可分解为多个小的接口,不同的接口向不同的客户端提供服务,客户端只访问

自己所需要的端口

例如:

又一实例:

(5)DIP(The Dependency Inversion Principle)依赖转置原则

-抽象的模块不应该依赖于具体的模块

-具体应该依赖于抽象

简单来说,解决耦合。一般情况下抽象的变化概率很小,让用户程序依赖于抽象,实现的细节也依赖于抽象。即使实现细节不断变动,只要抽象不变,客户程序就不需要变化。这大大降低了客户程序与实现细节的耦合度。

抽象出共同点,然后让实现细节依赖于抽象,客户端也使用抽象:

相当于增加了一个桥梁-接口。

另外:GRASP:General Responsibility assignment Software Patterns (principles), 

是关于如何为“类”和“对象”指派“职责”的一系列原则。

相关阅读

天猫积分买什么送的多?天猫积分使用原则是什么?

现在大家越来越喜欢在天猫商城上面去购物了,因为快捷又方面,那么大家想不想知道关于这一块的一些优惠呢?小编今天就来讲讲其中的天

面向对象的分析与设计

打个广告,帮朋友卖点东西,东西超便宜的哟【衣服鞋子等】,厂家直接出货,绝对低于市场价!!! 一般都比市场价便宜3—7折【都是牌子货】,如果

面向对象设计的七大设计原则详解

面向对象的七大设计原则 文章目录面向对象的七大设计原则简述七大原则之间的关系一、开闭原则(The Open-Closed Principle ,OCP)概

Design for Xuture:IOS 11用户界面设计指导六个原则和

随着X的问世,IOS11设计规范也相应更新,读下来的第一感受是:很大篇幅都是针对X进行的增补,包含一丝丝未来移动APP设计的气息,即:Design f

系统分析与设计方法---用户界面设计的原则

用户界面设计   接口设计主要包括三个方面的内容:一是设计软件构件间的接口;二是设计模块和其他非人的信息生产者和消费者(如外部

分享到:

栏目导航

推荐阅读

热门阅读