设为首页 加入收藏

TOP

软件设计原则(二)
2017-10-13 10:40:09 】 浏览:7444
Tags:软件 设计 原则
le,ISP

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。

建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。也就是说,我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。强调接口的单一性;

接口隔离的手段:1.委托分离,通过增加一个新的类型来委托客户的需求,隔离客户和接口的直接依赖,但会增加系统的开销;2.多重继承隔离,通过接口多继承来实现客户需求,推荐使用;

接口隔离原则跟单一职责原则区别:

其一,单一职责原则原注重的是职责;而接口隔离原则注重对接口依赖的隔离。

其二,单一职责原则主要是约束类,其次才是接口和方法,它针对的是程序中的实现和细节;而接口隔离原则主要约束接口接口,主要针对抽象,针对程序整体框架的构建。

 

依赖倒置原则(Dependency Inversion Principle,DIP:

依赖倒置体现在两个方面:

      高层模块不应该依赖于低层模块,二者都应该依赖其抽象;抽象的稳定性决定了系统的稳定性,因为抽象是保存不变的;

      抽象不应该依赖具体,具体应该依赖抽象。即相互依赖的组件应该通过抽象来进行交互,而不是直接通过具体来实现;

核心思想:通过抽象机制有效解决类层次之间的关系,降低耦合的粒度,实现对抽象的依赖;对接口编程;面向抽象编程;

     依赖倒置是实现开发封闭原则的前提和基础,为有效解决层次之间的依赖关系寻求了最佳方案;

     依赖倒置是对抽象和依赖的基本原则和基本思想的哲学解释;

     依赖倒置是框架设计的核心思想;

     依赖倒置是控制反转和依赖注入的思想基础;

 

迪米特法则,又称最少知道原则Law of Demeter,LoD):

一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。尽量降低类与类之间的耦合。

一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。

 

合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)

尽量使用合成/聚合的方式,而不是使用继承。在新对象中聚合已有的对象,使之成为新对象的成员。从而通过操作这些对象达到复用的目的;

 

分离关注点(Separation of concerns,SoC)原则

定义了实现低内聚高耦合目标的同一规则;

一个关注点就是一个特定的目标或概念、一块我们感兴趣的的区域;

分离关注点:将跨多个组件的应用程序或用例责任分离开来,每个组件都有自己的特定职责。“关注”可以用一组特定的功能或行为相关联;

分离关注点对只与关注点相关联的软件组成部分进行标识、封装和操纵关注点的能力;

分离关注点可以产生高内聚、低耦合的系统;

软件系统,可看作由一组关注点组成。直切关注点,直接的业务关注点。

横切关注点(cross-cutting concerns):为直切关注点提供服务(系统级的关注点);

系统级的关注点有日志、事务完整性、授权、安全性及性能问题等许多关注点,会在多个模块中出现;

 

AOP(Aspect-Oriented Programming)面向切面编程:

可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需 要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。在更高的抽象层次上以模块化横切关注点为目标的新型程序设计范型。

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ASP.NET Zero--7.控制器加权限 下一篇ASP.NET Zero--6.菜单加权限

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目