我琢磨出了Java组合模式的一种用法(奇技淫巧)想跟大佬们请教可行性,比如把实现IFlyable的SimpleFly组合进Duck,一般做法是用duck实现IFlyable,并对每一个方法实现为委托SimpleFly执行,对于kotlin来说这很好实现,但Java必须手写。
我的玩法就是使用cglib代理,首先扫描IFlyable接口与其实现SimpleFly抽象类(抽象类可以实现接口而又不需要实现全部接口),然后cglib将抽象类中实现的方法直接调用,而未实现的方法自动委托SimpleFly实现,省了好多代码😂

我用cglib测试,运行没有毛病,模式上就不知道是不是反模式了
非主流用法,请大家挑挑毛病
展开
评论