我有一个名为 ChainHandler 的抽象类和 ChainHandler 的许多实现。
其他程序员将编写该 ChainHandler 的其他实现。
我的程序实现了责任链设计模式。
ChainHandler 的每个具体实现都实现了一个句柄方法。
public abstract void handle(SomeclassA a);
如果一个处理程序可以处理“a”,它会处理它并且链停止。如果不是,则将“a”传递给下一个处理程序,直到它到达链的末尾。
我希望每个具体的处理程序都有一个它能够处理的所有“a”的列表。但我不想让具体类开发人员记住将其写入成功列表。
有没有优雅的方法呢?
我最好的想法是:
1 - 在具体类中将句柄方法更改为受保护,使其返回布尔值并将名称更改为内部句柄;
2 - 将抽象类的句柄方法更改为公共,并调用内部句柄。成功后,它将对象添加到列表中。