- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 C# 程序来为 Microsoft Kinect 录制和处理视频。我创建了一个 KinectManager
类来检查传感器的状态,并执行激活、停用和记录颜色流等操作。
因为只能插入一个 Kinect 传感器,每次运行程序时,我总是只需要一个 KinectManager
类的实例。在这种情况下,将类或其方法设为静态是一种好习惯吗?
最佳答案
虽然静态方法可能很方便,但请记住,静态不是面向对象的设计。例如。继承不起作用,静态类不能实现接口(interface)。
您还会获得更多耦合代码,因为与传递另一个实例相比,替换静态调用需要更多工作。
静态方法在不处理状态时更好(例如 ToUpperCase(string)
)——@Wazner 也提到过。
在这种情况下,您可以使用 Singleton pattern ,这将确保只有一个实例。
例如:
public class KinectManager {
// instance, another option is to make it lazy, but be aware if it's needs to be threadsafe.
private static KinectManager _instance = new KinectManager();
//private ctor to ensure it won't be created outside this class .
private KinectManager () {}
// The instance
public static KinectManager Instance {
get { return _instance ;}
}
}
但请注意 singleton pattern is overused in the real world .如果在有两个实例时出现问题,那么单例是确保这种情况不会发生的好方法。但是如果两个实例都可以,那么可能单例模式设计过度了。
关于c# - 当只有一种资源(例如,Kinect 传感器)时,使用静态类/方法是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43661683/
在我生活的世界中,构建一个将所有飞镖都扔到墙上的解决方案,并希望其中一些能命中靶心是一种非常糟糕的解决方案方法。 那么,我的问题出现了,什么时候在约定可接受的生产系统中使用 INSERT IGNORE
在数据处理时,经常会因为index报错而发愁。不要紧,本次来和大家聊聊pandas中处理索引的几种常用方法。 1.读取时指定索引列 很多情况下,我们的数据源是 CSV 文件。假设
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
我是一名优秀的程序员,十分优秀!