我最近遇到过这样一种情况,我希望将一组类传递给一个方法(这样该方法将接口作为参数)。
但是,界面下的每个类都有不同的方法数,因此界面本身是空白的。
对于我的应用程序的设计,这有什么意义呢?在这种情况下我打算使用抽象类,但我保留了接口,所以有些东西可能阻止我使用抽象类(不记得是什么)。
语言:C#(虽然这与语言无关)。
答案 0 :(得分:3)
您所描述的是'标记界面'。
http://en.wikipedia.org/wiki/Marker_interface_pattern
与任何设计模式一样,只要它是手头任务的正确模式,就没有任何本质上的好或坏。
答案 1 :(得分:2)
我要问的问题是为什么你需要传递给你的方法的那些类的实例,以及为什么它只能是那个中的一个。
如果该方法与System.Object
完全相同,那么它应该将一个对象作为参数。如果它需要传入的项目具有某些特定功能,那么该功能应该已经在界面中编纂。
答案 2 :(得分:1)
如果有的话,我对申请的设计有什么看法?
也许它说你需要多考虑某些责任真正在哪里?记住Liskov substitution principle(LSP):子类型必须可替代它们的基类型。我也会记住Single Responsibility Principle(SRP)。但最重要的是要保持简单。
我经常发现,只有在我将这样的东西放在一起并使用它一段时间后(从不同的角度和不同的使用情况下),事情才开始变得清晰。所以它可能会说的是你有一些想法,但你还不清楚如何最好地做到这一点 - 这很酷;得到一些有效的东西,然后在你准备好的时候进行重构。