ABAP-OO设计模式六大原则之四( 接口隔离原则)

1.概念: 

客户端不应该依赖它不需要的接口,类间的依赖关系应该建立在最小的接口上

2.含义: 

接口隔离原则的核心定义,不出现臃肿的接口(Fat Interface),但是“小”是有限度的,首先就是不能违反单一职责原则。

3.模拟场景: 

一个OA系统,外部只负责提交和撤回工作流,内部负责审核和驳回工作流。

4.代码演示: 

REPORT yabapooisp.

INTERFACE ireview.
  METHODS:
    review_workflow,
    reject_workflow.
ENDINTERFACE.

CLASS review DEFINITION.
  PUBLIC SECTION.
    INTERFACES ireview.
    ALIASES: review_workflow FOR ireview~review_workflow,
             reject_workflow FOR ireview~reject_workflow.
ENDCLASS.

CLASS review IMPLEMENTATION.
  METHOD review_workflow.
    WRITE: /'开始审核工作流'.
  ENDMETHOD.
  METHOD reject_workflow.
    WRITE: /'驳回工作流'.
  ENDMETHOD.
ENDCLASS.

INTERFACE isubmit.
  METHODS:
    submit_workflow,
    cancel_workflow.
ENDINTERFACE.
CLASS submit DEFINITION.
  PUBLIC SECTION.
    INTERFACES isubmit.
    ALIASES: submit_workflow FOR isubmit~submit_workflow,
             cancel_workflow FOR isubmit~cancel_workflow.
ENDCLASS.

CLASS submit IMPLEMENTATION.
  METHOD submit_workflow.
    WRITE: /'开始提交工作流'.
  ENDMETHOD.
  METHOD cancel_workflow.
    WRITE: /'撤销工作流'.
  ENDMETHOD.
ENDCLASS.

CLASS main DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS:
      process.
ENDCLASS.

CLASS main IMPLEMENTATION.
  METHOD process.
    DATA(lo_review) = NEW review( ).
    lo_review->review_workflow( ).
    lo_review->reject_workflow( ).

    DATA(lo_submit) = NEW submit( ).
    lo_submit->submit_workflow( ).
    lo_submit->cancel_workflow( ).
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  main=>process( ).

 

5.代码解析: 

其实接口隔离原则很好理解,在上面的例子里可以看出来,如果把OA的外部和内部都定义一个接口的话,那这个接口会很大,而且实现接口的类也会变得臃肿。

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值