ABAP OO设计

23 篇文章 2 订阅

这是一个值得长期思考的话题(Java,C++开发者应该比我们理解的更深刻)
这段时间做了一个需求,2个模型(模型A:175个字段,模型B:100个字段).其中B里模型大部分字段的逻辑与A的相同,为了方便以后运维,大家希望尽量写在一个地方。发生修改时候,只需要修改一个地方即可。我做了一个base class,然后两个sub class 继续那个base class。

  1. base class:负责公共部分逻辑的代码
  2. sub class:负责各自特殊逻辑

但是有几个场景:

  1. 两个模型逻辑完全不同
    1.1 完全特有的逻辑:通过定义private method处理
    1.2 目的含义一样,逻辑不同: interface来实施或者abstract(哪个更好呢?) —Paul Hardy更喜欢interface,但在这里我自己感觉abstract更适合,以后用oo写多了,说不定能理解其中的差异。
    –2023/03/09 今天看了一些关于abstract 和interface的区别:
    I. abstract是为了子类和继承类而做
    II. interface 是为了外部调用(飞机和鸟都能飞行,但是他不是同类,这个例子蛮好的,让人容易理解)
    —综上,我调整了这3个类,将目的一样逻辑有差异的用abstract,然后在子类中做实施
  2. 两个模型逻辑完全相同
    通过base class实施来完成
  3. 两个模型逻辑部分相同
    公共逻辑还是在base class来完成,不同部分通过sub class redefine来实施
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值