我正在编写一个应用程序,希望它具有极高的可扩展性,而扩展方法似乎给了我想要的,还可以在没有实例的情况下调用它们,这也是我需要的。
我记得读过静态方法比实例方法更快,但不会获得GC的优势。这是正确的吗?
除非我找到一种更好的设计替代品,否则我很可能不会改变我的设计。但是,为了获取额外的信息,我仍然想知道速度、GC等方面的差异。
编辑:谢谢。更多信息:假设我们有一个Person类:
class Person
可以有一个实例距离方法,例如:
this.Distance (Person p)
这很好,但这并不能让我在不创建Person类的实例的情况下计算两个点(比如Point3)之间的距离。
我的需求是这样的:
class Person (no Distance methods)
但是 Distance 的扩展方法:
Distance (this Person, Person)
Distance (this Point3, Point3)
这样我就可以同时完成以下两个任务:
myPerson.Distance (yourPerson)
并且
Extensions.Distance (pointA, pointB)
编辑2:@Jon,是的,我认为这就是(不理解GC的优势)的意思,但我不知道静态方法会产生这种负担/开销。
GetAge
作为实例方法是有意义的。但后者我不太清楚。 - Mehrdad AfshariCustomerDAL
类有一个GetAllCustomers(..)
方法....与EmployeeDAL
的GetAllEmployees()
相同.....应该是实例方法吗?如果是这样-那么在这些类中应该有哪种类型的静态方法(请提供示例)? - Royi Namir