(50)--14-5 面向对象设计原则 接口隔离原则 面向对象与UML.pdf
《(50)--14-5 面向对象设计原则 接口隔离原则 面向对象与UML.pdf》由会员分享,可在线阅读,更多相关《(50)--14-5 面向对象设计原则 接口隔离原则 面向对象与UML.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 面向对象与面向对象与UML Object-Oriented and UML 面向对象设计原则面向对象设计原则 Object-Oriented Design Principles -3-3-面向对象的基本设计原则面向对象的基本设计原则(1)LSP:Liskov(里氏里氏)替换原则替换原则 Liskov Substitution Principle(2)OCP:开放:开放-封闭原则封闭原则 Open-Close Principle(3)SRP:单一职责原则:单一职责原则 Single Responsibility Principle(4)ISP:接口隔离原则:接口隔离原则 Interface S
2、egregation Principle (5)DIP:依赖倒置原则:依赖倒置原则 Dependency Inversion Principle(6)CARP:组合组合/聚合复用原则聚合复用原则 Composite/Aggregate Reuse Principle(7)LOD(LKP):迪米特法则迪米特法则(最少知道原则最少知道原则)Law of Demeter(Least Knowledge Principle)ISP(Interface Segregation Principle)接口隔离原则接口隔离原则 ISP接口隔离原则定义接口隔离原则定义 Clients should not be
3、 forced to depend upon interfaces that they do not use.客户不应该依赖他们用不到的方法,只给客户它所需要的接口。客户不应该依赖他们用不到的方法,只给客户它所需要的接口。换句话说,使用多个专门的接口比使用单一的总接口要好。换句话说,使用多个专门的接口比使用单一的总接口要好。实例实例1 1-电子商务系统中的订单处理电子商务系统中的订单处理 某电子商务网站中有关“订单”处理的设计方案某电子商务网站中有关“订单”处理的设计方案 三种使用订单的场合三种使用订单的场合(1)外部用户外部用户可以通过可以通过门户网站门户网站查询订单(查询订单(getOrd
4、er)。)。(2)公司员工公司员工可以通过可以通过前台系统前台系统增加订单(增加订单(insertOrder)。)。(3)管理员管理员可以通过可以通过管理后台管理后台进行维护,包括订单的增加(进行维护,包括订单的增加(insertOrder)、删除(删除(deleteOrder)、修改()、修改(modifyOrder)、查询()、查询(getOrder)操作。)操作。如何设计订单的访问接口?如何设计订单的访问接口?实例实例1 1-违背违背ISPISP的设计方案的设计方案 此设计中存在的问题:此设计中存在的问题:门户网站、前台系统并不门户网站、前台系统并不使用使用IOrder接口中的全部接口中
5、的全部方法。方法。因此客户依赖了他所不因此客户依赖了他所不需要的接口,违背了需要的接口,违背了ISP.设计设计订单访问接口订单访问接口IOrder,该接口提供订单类对外的所有操作,该接口提供订单类对外的所有操作,订单类订单类Order来实现这些接口。来实现这些接口。实例实例1 1-解决方案解决方案 遵循遵循ISPISP的设计方案,分离接口。的设计方案,分离接口。客户程序只依赖与自己所需的接口,避免了接口污染。客户程序只依赖与自己所需的接口,避免了接口污染。使用多重继承使用多重继承(实现实现)分离接口分离接口 ISP接口隔离原则分析接口隔离原则分析 接口隔离原则是指接口隔离原则是指使用多个专门的
6、接口,而不使用单一的总接口使用多个专门的接口,而不使用单一的总接口。每一个接口应该承担一种相对独立的角色,不多不少,不干不该每一个接口应该承担一种相对独立的角色,不多不少,不干不该干的事,该干的事都要干。干的事,该干的事都要干。(1)(1)一一个接口就个接口就只代表一个角色只代表一个角色,每个角色都有它特定的一个接口,每个角色都有它特定的一个接口,此时这个原则可以叫做“角色隔离原则”。此时这个原则可以叫做“角色隔离原则”。(2)(2)接口接口仅仅提供客户端需要的行为,即所需的方法,客户端不需仅仅提供客户端需要的行为,即所需的方法,客户端不需要的行为则隐藏起来,应当为客户端提供尽可能小的单独的接
7、口,要的行为则隐藏起来,应当为客户端提供尽可能小的单独的接口,而不要提供大的总接口。而不要提供大的总接口。ISP接口隔离原则分析接口隔离原则分析 使用接口隔离原则拆分接口时,首先必须满足使用接口隔离原则拆分接口时,首先必须满足单一职责原则单一职责原则,将,将一组相关的操作定义在一个接口中,且在满足高内聚的前提下,一组相关的操作定义在一个接口中,且在满足高内聚的前提下,接口中的方法越少越好。接口中的方法越少越好。可以在进行系统设计时采用可以在进行系统设计时采用定制服务定制服务的方式,即的方式,即为不同的客户端为不同的客户端提供宽窄不同的接口提供宽窄不同的接口,只提供用户需要的行为,而隐藏用户不需
8、,只提供用户需要的行为,而隐藏用户不需要的行为。要的行为。实例实例2违背违背ISP接口隔离原则接口隔离原则 下图展示了一个拥有多个客户类的系统,在系统中定义了一个巨大的下图展示了一个拥有多个客户类的系统,在系统中定义了一个巨大的接口接口AbstractService来服务所有的客户类。来服务所有的客户类。ClientA只使用只使用AbstractService接口中的接口中的opeatorA方法。方法。ClientB只使用只使用AbstractService接口中的接口中的opeatorB方法。方法。ClientC只使用只使用AbstractService接口中的接口中的opeatorC方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 50-14-5 面向对象设计原则 接口隔离原则 面向对象与UML 50 14 面向 对象 设计 原则 接口 隔离 UML
限制150内