通常 一个类给多个类使用,它一定是基础的共用类,是提供通用的服务,而不是特为某模块实现某些服务的,不然就违背单一原则。
所以应该分别实现各接口,然后给各模块使用,如果是耦合,是不是依赖了具体实现,解决耦合,就必须依赖接口
是一个类使用多个类,但使用必须实现他们的接口。
组合+匿名内部类。
这样再多的接口都不怕了
记住:依赖抽象
把这几个类组合成一个大类,最后返回时用一个泛型接收,返回这个大类
首先确定 你的维度
然后根据维度定出接口
例如 我做过一个功能 及 餐饮刷卡动作功能
有2个维度
一个是 刷卡动作维度:充值,消费,核销
一个是功能维度:及每个动作都固定有3个动作 预览,执行,撤销
那么我就声明一个大类
叫做交易抽象类 他有3个方法 及 预览,执行,撤销
然后在业务的维度上给予 3个子类继承他 叫做 充值交易,消费交易,核销交易
然后这一步 已经将业务分离出来了
然后具体到底下的动作
每笔操作又分为如下几步:
// 处理数据
// 1.修改用户金币积分
// 2.核销电子券
// 3.添加电子券
// 4.年度积分
// 5.成交记录
然后根据每一步然后具体实施
然后进一步分析 消费动作又会触发规则部分 规则又分为 积分规则 金币规则 电子券规则 依次按逻辑 自上而下的抽象
然后就是。。。。。。
然后至于抽象的粒度问题,可以一开始不抽象那么细,但是要留出后期重构聚合的口就好,其他的我就不多说了。