关于接口隔离原则的一个实现:
使用场合,提供调用者需要的方法,屏蔽不需要的方法.满足接口隔离原则.
比如说电子商务的系统,有订单这个类,有三个地方会使用到,
一个是门户,只能有查询方法,
一个是外部系统,有添加订单的方法,
一个是管理后台,添加删除修改查询都要用到.
根据接口隔离原则(ISP),一个类对另外一个类的以来性应当是建立在最小的接口上.
也就是说,对于门户,它只能依赖有一个查询方法的接口.
UML结构如下:
下面是实现的代码.
//--这儿不用接口继承,因为可能出现修改了父接口影响了子接口
interface IOrderForPortal{
String getOrder();
}
interface IOrderForOtherSys{
String insertOrder();
String getOrder();
}
interface IOrderForAdmin{ //extends IOrderForPortal,IOrderForOtherSys
String deleteOrder();
String updateOrder();
String insertOrder();
String getOrder();
}
/*
interface IOrderForPortal{
String getOrder();
}
interface IOrderForOtherSys{
String insertOrder();
}
interface IOrderForAdmin extends IOrderForPortal,IOrderForOtherSys{
String updateOrder();
String deleteOrder();
}
*/
class Order implements IOrderForPortal,IOrderForOtherSys,IOrderForAdmin{
private Order(){
//--什么都不干,就是为了不让直接 new,防止客户端直接New,然后访问它不需要的方法.
}
//返回给Portal
public static IOrderForPortal getOrderForPortal(){
return (IOrderForPortal)new Order();
}
//返回给OtherSys
public static IOrderForOtherSys getOrderForOtherSys(){
return (IOrderForOtherSys)new Order();
}
//返回给Admin
public static IOrderForAdmin getOrderForAdmin(){
return (IOrderForAdmin)new Order();
}
//--下面是接口方法的实现.只是返回了一个String用于演示---------------
public String getOrder(){
return "implemented getOrder";
}
public String insertOrder(){
return "implemented insertOrder";
}
public String updateOrder(){
return "implemented updateOrder";
}
public String deleteOrder(){
return "implemented deleteOrder";
}
}
public class TestCreateLimit{
public static void main(String[] args){
IOrderForPortal orderForPortal = Order.getOrderForPortal();
IOrderForOtherSys orderForOtherSys = Order.getOrderForOtherSys();
IOrderForAdmin orderForAdmin = Order.getOrderForAdmin();
System.out.println("Portal门户调用方法:"+orderForPortal.getOrder());
System.out.println("OtherSys外部系统调用方法:"+orderForOtherSys.insertOrder());
System.out.println("Admin管理后台调用方法:"+orderForAdmin.getOrder()+";"+orderForAdmin.insertOrder()+";"+orderForAdmin.updateOrder()+";"+orderForAdmin.deleteOrder());
}
}
这样就能很好的满足接口隔离原则了,调用者只能访问它自己的方法,不能访问到不应该访问的方法.
欢迎讨论...写这些的目的就是为了共同进步,有什么错误或者不足,欢迎指出....
- 大小: 47.8 KB
分享到:
相关推荐
接口隔离原则(Interface Segregation Principle,ISP)是设计模式中的一个重要原则,它是 SOLID 原则之一。SOLID 是面向对象设计的五个基本原则的首字母缩写,由 Robert C. Martin 提出,旨在使软件设计更加灵活、...
接口隔离原则(Interface Segregation Principle,ISP)是C++中的一个重要设计原则,它旨在降低类之间的耦合性,提高系统的灵活性和可维护性。本文将详细介绍接口隔离原则的定义、优点、实现方法和应用实例。 定义 ...
接口隔离原则的核心思想是:一个类不应该强迫其客户端依赖于它不需要的方法。这意味着应该将庞大的、包罗万象的接口拆分为更小、更专注的接口,每个接口只服务于特定的职责。这样做有以下几个好处: 1. **减少耦合*...
通过接口隔离原则,可以将`Modem`类实现为两个接口:`DataChannel`(包含`send()`和`recv()`)和`Connection`(包含`dial()`和`hangup()`)。这样,应用程序可以根据需求选择依赖相应的接口,降低了耦合度,提高了...
当一个接口包含了多个方法,而某些方法对于依赖这个接口的类来说并不必要时,就违反了接口隔离原则。例如,假设有一个`IWorker`接口,其中包含`work()`和`eat()`两个方法,`Worker`类和`Robot`类都实现了`IWorker`...
本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第4篇,接口隔离原则ISP(The Interface Segregation Principle)。 英文原文:...
接口隔离原则(Interface Segregation Principle, ISP)是PHP面向对象编程中的一个重要概念,它是面向对象设计的五大原则(SOLID)之一。ISP主张一个类不应该被迫实现它不需要的方法,也就是说,客户端应该只依赖于...
接口隔离原则是面向对象设计中的一个重要原则,它主张设计精简且针对性强的接口,避免一个接口中包含不必要的方法导致接口使用者被迫实现他们不需要的功能。这个原则有助于减少类之间的耦合,提高系统的可扩展性和可...
如果一个接口混合了多个角色的功能,那么它就变得臃肿和复杂,当任何一部分发生变化时,依赖该接口的客户端都可能受到影响,这违背了接口隔离原则。 文章通过代码示例进一步阐释了这一原则的应用。定义了两个接口A...
它定义为:一个软件实体应当对扩展开放,对修改关闭。也就是说,在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。开闭原则的关键是抽象化,它...
在面向对象设计中,有七个基本原则,即单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成复用原则和迪米特法则。 1. 单一职责原则(SRP):一个类只负责一个功能领域中的相应职责。单一职责...
面向对象编程的七大原则是指在面向对象设计中所遵循的七个基本原则,它们是:开闭原则、依赖倒转原则、单一职责原则、接口隔离原则、迪米特法则、里氏替换原则和组合优于继承原则。 1. 开闭原则(Open-Closed ...
设计模式六大原则(4):接口隔离原则 定义:一个客户端不应该被迫依赖它不需要的接口,即接口设计应该关注接口的粒度,每个接口只包含客户需要的方法。 问题由来:过大的接口使得客户端不得不去实现或依赖一些不...
DIP)、接口隔离原则(Interface Segregation Principle, ISP)以及单一职责原则(Single Responsibility Principle, SRP)。这些原则在面向对象编程中尤为重要。 1. 开闭原则(OCP): 开闭原则指出,软件实体...
* 接口隔离原则(ISP):客户端不应该被迫依赖它们不使用的接口。 * 合成/聚合复用原则(CRP):优先使用合成/聚合,而不是继承。 遵循这些设计原则可以使我们的软件系统更加灵活、可维护和可扩展。 本文总结了...
4.接口隔离原则: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 5.迪米特法则还有一个更简单的定义:只与直接的朋友通信。其中,我们称出现成员变量、方法参数、方法返回值中的...
4. 接口隔离原则(ISP):客户端不应该被迫依赖它不使用的方法。接口应该尽可能小且具体,避免过大的接口导致不必要的耦合。 5. 依赖倒置原则(DIP):依赖于抽象,而不是依赖于具体实现。这样可以更容易地替换实现...
SOLID代表Single Responsibility Principle(单一职责原则)、Open-Closed Principle(开闭原则)、Liskov Substitution Principle(里氏替换原则)、Interface Segregation Principle(接口隔离原则)和Dependency ...
1. 单一职责原则(SRP):一个类或模块应仅有一个引起它变化的原因,避免一个类承担过多职责,从而降低耦合度。 2. 开闭原则(OCP):软件实体(如类、模块、函数等)应对扩展开放,对修改关闭,意味着我们可以向现有...