我有一个叫做ChainHandler的抽象类和ChainHandler的许多实现。责任链日志记录
其他程序员将编写该ChainHandler的其他实现。
我的程序实现了责任链设计模式。
ChainHandler的每个具体实现都实现了一个句柄方法。
public abstract void handle(SomeclassA a);
如果一个处理程序可以处理“a”,它将处理它并且链条停止。如果不是,则将“a”传递给下一个处理程序,直到它到达链的末端。
我希望每个具体处理程序都有一个它能够处理的所有“a”列表。但我不想让具体的课程开发人员记得把它写入成功的列表。
有没有这样做的优雅方式?
我最好的想法是以下几点:
1 - 更改处理方法在具体的类保护,使其返回一个布尔值,并更改名称innerhandle;
2 - 将抽象类中的handle方法更改为public,并调用innerhandle。成功时,它将该对象添加到列表中。
@TrueWill谢谢。 :) – pablosaraiva