我正在寻找适合这些规格的设计模式:
1-假设您有包装动物,包括'动物','猫'和'狗'。
2-您必须修改'Animal'中的方法行为(也在包中的'Cat'和'Dog'中重写),而不对包动物源代码进行任何修改。
我确实找到了访问者模式用于这种目的,但是你必须修改包动物源代码,并实现一个包含accept方法的Visitable接口。但是,这是不允许的。
你有什么建议?
答案 0 :(得分:1)
我不完全确定规范,但你可以使用Decorator来创建动物包之外的类,它将使用组合来扩展正常行为。
答案 1 :(得分:0)
我同意@Gabriel,装饰者模式可能是一个很好的起点。您可以在Holger Kreissl's Devblog Decorator Pattern in C#找到一个易于理解的示例。