|
|
1
20
我从未见过有人提出这种说法,我也看不出有什么好的理由。NET框架中充满了带有属性的接口。 |
|
|
2
20
我也会在这里加上我的声音——我从来没有遇到过这个建议。一个属性实际上是一对get/set方法。 就像其他设计决策一样。如果它真的有意义;如果它适合设计中的系统,如果它不会引起维护问题,如果它没有引起性能问题,那么你就没有理由不能这样做。 |
|
|
3
15
有一个被广泛认可的术语“代码气味”。我建议引入“程序员气味”的概念——如果有人坚持某种规则,但无法解释为什么——这是一种气味。你的同事应该能够解释为什么界面中的属性不好。如果他不能——即使他所指的文章是对的,他也可能错了。 那篇文章可能是在谈论一些特定类型的接口,可能与COM和互操作性有关,或者别的什么。或者他可能只是搞错了。理解规则并能够解释它们是使用规则的重要组成部分。 |
|
|
4
9
例如:
|
|
|
5
2
本身从未见过这样的事情,但不久前有人谈到在跨平台接口定义中不使用属性,因为有许多平台不支持属性,但几乎所有平台都支持方法。 |
|
|
6
2
Cause属性意味着它们很快(即获取和设置值),但由于网络和序列化活动,这对服务来说是不正确的。在服务接口中获取或设置值的显式方法意味着完成操作可能需要一些时间。 |
|
|
7
1
我想不出任何文件来支持这一前提。此外,我可以在BCL中想到许多相反的例子。看看几乎所有的集合接口,你都会看到属性。 |
|
|
8
0
|
|
|
9
0
实际上,一个属性由两个函数组成:一个用于获取值,一个用于设置值。尽管属性是C#的第一类“特性”,但这仍然是正确的。 为什么不允许在接口中使用属性? |
|
|
10
0
|
|
|
11
0
|
|
12
0
IEnumerator 对于需要属性作为接口成员的场景来说,这是一个完美的例子。若不强制实现者这样做,你们将如何存储当前元素? |
|
13
0
我看到这是一个。网络问题;然而,这种想法可能来自Java背景。这让我想起了《Effective Java》中的第22条: .
我同意之前的答案,即我从未见过避免同时包含属性和方法的接口的建议。 |
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 1 年前 |