您好、欢迎来到现金彩票网!
当前位置:ag视讯 > 构件库 >

构件化程序设计的四原则是什么? 联系一个或多个你平时使用的某

发布时间:2019-07-27 15:43 来源:未知 编辑:admin

  构件化程序设计的四原则是什么? 联系一个或多个你平时使用的某些程序或者类库,分

  构件化程序设计的四原则是什么? 联系一个或多个你平时使用的某些程序或者类库,分

  构件化程序设计的四原则是什么?联系一个或多个你平时使用的某些程序或者类库,分析其中可能应用了那些设计原则。...

  联系一个或多个你平时使用的某些程序或者类库,分析其中可能应用了那些设计原则。展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  我以为我做的职工工资管理系统为例,当我把所有的需求全都做完以后,又想加一个保存职工工资的功能,这时我就用到了开-闭原则。

  开放封闭原则是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。其他的设计原则,很多时候是为实现这一目标服务的。

  然而,“需求总是变化”、“世界上没有一个软件是不变的”,这些言论是对软件需求最经典的表白。从中透射出一个关键的意思就是,对于我来说,必须在不需要对原有的系统进行修改的情况下,实现灵活的系统扩展。而如何能做到这一点呢?

  软件实体应当对扩展开放,对修改关闭。软件系统中包含的各种组件,例如模块、类以及功能等等,应该在不修改现有代码的基础上,引入新功能。开闭原则中“开”,是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的;开闭原则中“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。

  开放封闭原则主要体现在两个方面:对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。

  对于OOD,我想我们很容易理解为什么要使用它。首先,接口和实现分离给我们使用该原则提供了前提条件;为什么这么说呢?接口和实现分离这种设计方法应该已经得到验证是正确的,并且几乎在各种设计中都是有效而良好的。所以我们在设计中,尽量使接口和实现分离,这样,我们也就得到了一个抽象的接口和一个具体的实现,并且实现继承接口,有了该现实的存在,我们对于接口存放的位置就可以重新定义了,我们可以把接口放在使用方,也可以把接口放在实现方,而依赖倒置原则要求把这个接口(或者是抽象类)放在使用方,而所有实现该接口的类都可以互相替换,而对使用方透明。一旦我们把接口和使用方结合,并且要求提供服务的类(或模块)都要实现该接口,才能被使用方使用,我们就是在用“依赖倒置”原则了。

  其次,“依赖倒置原则”产生的一个结果是——具体依赖与抽象,而不再有依赖于具体的关系存在,这样就使整个接口具有了很大的灵活性,因为我们知道一般抽象是不变的,而具体是易变的,要是OO设计具有很大的灵活性,就需要做到大家都依赖于抽象的东西,而利用抽象隔离具体类之间的关系,这样使得“具体”的任何改动都可以在局部范围内实现,而不影响其它的结构。

  接口隔离原则(ISP):使用多个专门的接口比使用单一的总接口要好.也就是说,一个类对另外一个类的依赖性应当是建立在最小的接口上的.

  这里的接口往往有两种不同的含义:一种是指一个类型所具有的方法特征的集合,仅仅是一种逻辑上的抽象;另外一种是指某种语言具体的接口定义,有严格的定义和结构.比如Java语言里面的Interface结构.对于这两种不同的含义,ISP的表达方式以及含义都有所不同.(上面说的一个类型,可以理解成一个类,我们定义了一个类,也就是定义了一种新的类型)

  当我们把接口理解成一个类所提供的所有方法的特征集合的时候,这就是一种逻辑上的概念.接口的划分就直接带来类型的划分.这里,我们可以把接口理解成角色,一个接口就只是代表一个角色,每个角色都有它特定的一个接口,这里的这个原则可以叫做角色隔离原则.

  如果把接口理解成狭义的特定语言的接口,那么ISP表达的意思是说,对不同的客户端,同一个角色提供宽窄不同的接口,也就是定制服务,个性化服务.就是仅仅提供客户端需要的行为,客户端不需要的行为则隐藏起来.

  在我们进行OOD的时候,一个重要的工作就是恰当的划分角色和角色对应的接口.将没有关系的接口合并在一起,是对角色和接口的污染.如果将一些看上去差不多的接口合并,并认为这是一种代码优化,这是错误的.不同的角色应该交给不同的接口,而不能都交给一个接口.

  对于定制服务,这样做最大的好处就是系统的可维护性.向客户端提供接口是一种承诺,public接口后是不能改变的,因此不必要的承诺就不要做出,承诺越少越好.

  对于面向OOD来说,又被解释为下面几种方式:一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。

  迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在依赖关系。迪米特法则不希望类直接建立直接的接触。如果真的有需要建立联系,也希望能通过它的友元类来转达。因此,应用迪米特法则有可能造成的一个后果就是:系统中存在大量的中介类,这些类之所以存在完全是为了传递类之间的相互调用关系——这在一定程度上增加了系统的复杂度。

  狭义的迪米特法则的缺点:在系统里造出大量的小方法,这些方法仅仅是传递间接的调用,与系统的商务逻辑无关。

http://nzrimfire.com/goujianku/465.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有