|
|
1
28
静态方法通常适用于不需要类实例中任何数据的操作(从
静态字段对于不经常更改且被类的所有实例使用的常量非常有用。 |
|
|
2
16
当您使用静态工厂时,它提供了一个更好的意图——它还允许您拥有采用相同参数类型但具有不同含义的不同工厂。例如,假设位图具有LoadFromResource(string)——则不可能有两个同时使用string的构造函数。 编辑 :来自评论中的stevemegson
|
|
|
3
9
我会说,只要你有独立于实例状态的函数,就使用静态方法,也就是说,不依赖于任何实例字段。
方法依赖的非局部状态越少,就越容易理解,因此
|
|
|
4
8
我清楚地记住,实例方法在单个对象上/内部工作,而静态方法为类做一些事情。
静态的其他良好用途:比较(obj a,obj b)、删除(obj a)数据对象(对象无法删除自身,因为它的引用仍然存在),或者静态类用于过程代码,这些过程代码实际上无法在对象中建模。 |
|
|
5
2
只要函数不依赖于该类的特定对象,就应该使用静态方法。 添加static关键字没有害处:它不会破坏引用它的任何代码。例如,无论您是否具有“static”关键字,以下代码都是有效的:
因此,您应该尽可能在任何方法中添加“static”。 |
|
6
2
当方法不属于特定对象时,请使用静态方法。
例如,如果您查看.NETFramework中的数学类,您将看到
要使用这些方法的对象。为什么要创建
因此,当你设计一个类时,问问自己: 此方法属于对象还是类本身? 如果方法修改对象的状态,则该方法属于对象。如果 该方法不修改特定对象,它很可能是静态的。
另一个例子是,假设您想知道一个类有多少个对象
这是创建的(不要问我为什么…)。对于此任务,您可以创建一个
我希望这是有道理的。 |
|
7
1
以下是您可能希望使用静态方法的一些示例:
2) 使用factory方法创建对象时。如果您事先不知道要创建的类型,则它们是特别必要的:例如。
3) 当您控制或以其他方式跟踪类的实例化数量时。单例是最常用的例子。 4) 当声明常量时。 5) 对一个类的多个对象进行排序或比较等操作,并且这些操作不与任何特定实例相关联。
|
|
8
0
当类的客户端没有要处理的类实例时,可以使用静态方法。例如,Singleton设计模式用于确保系统中只存在一个类的实例。它要求单例的构造函数是私有的,这样客户端就不能创建任何实例。 因此,如果无法创建实例,如何访问该类的实例方法?通过调用返回类的单例实例的静态方法。 这当然只是一种情况,但还有许多其他情况。 |
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 1 年前 |