您所在的位置:主页 > Java培训 >

软件设计原则之开闭原则、替换原则、接口分离原则

时间:2014-04-05 10:44来源:未知 作者:疯狂java 点击:

  在Java面向对象的分析与设计过程中,提高一个软件系统的可维护性和可复用性是设计是要解决的最重要的问题。本节将从开闭原则、替换原则、依赖倒转原则、接口分离原则等方面来理解软件的可维护与复用设计原则。

  开闭原则

  一个较好的软件系统设计应该满足系统是可扩展的,不要对源代码进行大幅度的修改。即对功能扩展开放,对源代码功能修改关闭。在设计过程中所有的继承结构一般不超过两层,否则会出现代码交织的情况,对系统的扩展不利。

  替换原则

  从面向对象的分析与设计来讲,一个较好的软件系统很多组件或很多相关对象应该是可以替换的。替换原则准确的描述为“如果对每一个类型T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型”。也就是说,分类可以出现的地方,子类同样可以出现。替换原则的反命题是不成立的。替换原则在设计模式中的体现主要有:策略模式、合成模式和代理模式等。它们是对该原则的最后诠释。从代码重构的角度理解,对违反替换原则的设计,可以用下面的方式来对代码进行重构:a.创建一个新的抽象类,作为两个具体类得基类,将两个具体类得共同行为移动到抽象类中。b.将两个具体类的继承关系改写为委派关系。

  接口分离原则

  接口分离原则一般描述为:有些接口不用都是要不隔离可能会影响其他的接口。接口隔离原则的使用场合需要满足的条件为:提供调用者需要的方法,屏蔽不需要的方法。比如电子商务的系统有订单这个类,有以下三个地方会使用到该类:a.一个是门户,只能有查询方法。b.一个是外部系统,有添加订单的方法。c.一个是管理后台,添加、删除、修改、查询都要用到。根据接口隔离原则,一个类对另一个类得依赖性应当是建立在最小的接口上。也就是说,对于门户,它只能依赖于一个查询方法的接口。