我正在考虑创建一个接口并将其应用于某个命名空间中的所有对象。
我将使用它的场景:我想创建这些对象的通用处理程序,我想强制通用参数只接受实现此特定接口的类型。
这是一个糟糕的设计,还是可以接受的空白界面?
答案 0 :(得分:2)
您所谈论的内容称为Marker Interfaces。
我过去曾成功使用过这种技术,但我会质疑你对通用类的人为限制是否真的是必要的。如果是这样,那么这肯定是一种快速且经过编译检查的方法来完成它。
答案 1 :(得分:1)
在我看来,他们没有错。他们的很多优势在于(生成的)部分类。
答案 2 :(得分:1)
我个人对界面的理解是它形成了一个或多个对象之间的公共契约。这个想法很简单,您可以使用接口构建代码库,而无需担心实现。说这是一个有趣的问题,因为你在技术上试图强制执行合同。我会说继续吧。
答案 3 :(得分:1)
不,设计不错。对泛型参数提供合理约束有助于保持代码安全性和可读性。此外,您可以确定界面不会永远为空。
答案 4 :(得分:0)
如果它是空白的,为什么要创建此界面?每节课的内容是什么?它们之间是否存在任何共性?如果该问题的答案为否,那么为什么要为每个问题创建一个界面?
如果你有充分的理由制作一个空白的界面,它可能没问题。但想一想,看看你是否可以将任何东西放到元素之间常见的界面上。
答案 5 :(得分:0)
没有什么......我猜错了使用空白界面。只是,接口的重点是定义一组通用功能,这些功能可能会因其实现方式而有所不同。
它不会使编码变得更容易,因为你正在有效地使用黑盒子(object
,正如有些人可能称之为)。
老实说,如果我实现这样一个开放式架构,我就会选择常规的object
。