有一个类结构,不好放到这里,因此我上传到了附件中
大概解释下:
有个顶层的接口I,下面有2个抽象的实现类,L方式和T方式的(比如我画一个圆形,既可以用画笔,也可以用现成的组件)
他们的下面又分别有各自的具体实现类,但功能是相同的,仅仅一个用L的底层,一个用T的底层
现在问题来了:
如果我想增加一种实现方式,比如K方式的,那么又要增加相应的KA,KB,KC,这样是不是需要增加的类太多了?
看上去也比较乱,
所以我来这里请教各位高人,有没有更好的方法,来设计这样一个结构
谢谢了
Adapter pattern是一种,简单讲就是实现一个提供所有方法默认实现的类,然后所有子类都继承这个类、然后仅重写需要方法。
大致结构如下:
interface — 方法a(),b(),c()
|
Adapter — 默认实现a(),b(),c()
/ | \
/ | K— 重现c()
/ T — 重现b()
L — 重现a()
说实话,不清楚你的具体需求是什么样子的,为什么会有那么多不同的实现,可能Adatper也并不是非常合适,其实对于楼主这种结构,比较好的方式是把那些非具体实现的、仅提供底层服务的方法分离出去,不作为抽象类的方法,而作为具体类的引用来使用。
大体结构如下:
interface IUtils
| / | \
abstract — 引用IUtils L T K
/ | \
A B C
问题描述的不清楚,不明白需要做成什么样子