c# – SOLID,SRP,IComparable
作者:互联网
好的,在单个类上实现IComparable和其他接口(如IDisposable)违反了SRP原则.
SRP指出,每个班级都应该实现信号责任,并且方法应该在很大程度上相互联系,以实现有凝聚力的班级.
是不是比较另一个责任?
一些澄清将不胜感激.
解决方法:
如果我是你,我会努力坚持SRP,但不是那么严格,因为努力最终会适得其反.所以现在说,你该怎么办?您可以实现IComparable并将对比完全封装在对象中,或者使用单独的比较器并在其中实现比较逻辑.现在进行比较,就SRP而言,如果比较是相当基础的并且不应该进行更改,我将实现IComparable并完成它.如果您可以合理地预见未来会有一些变化,或者如果比较是依赖于用例,那么我会选择比较器路线.最终的目标是开发封闭的组件,并通过组合它们使它们合作,因此如果比较几乎没有机会改变,组件可以关闭,你不会再听到它.您还可以在代码中评论IComparable的使用,如果将来发生某些变化,请切换到使用比较器进行编写,因为据说未发生的更改确实发生了.
标签:c,interface,solid-principles 来源: https://codeday.me/bug/20190611/1219088.html