【发布时间】:2010-10-12 01:41:45
【问题描述】:
我有一个产品图像类。这是一个具有重用潜力的对象,可用于处理图像的一般工作(例如,用于产品、处理图像时的 CMS 等)。它可以让我设置文件的标题,并使用标准 .NET 类以简单的方式编辑图像。
我可以使用一个结构,这意味着如果我在 5 个不同的地方使用该结构,那就是 5 个不同的内存位置,但都是相互独立的。更改其中一个内存位置的状态不会影响其他内存位置(这是所需的行为)。请求对象时会被框起来。
对象是基于实例的。因此,每个产品都会使用产品对象并使用图像(例如编辑其标题等)。
如果我创建一个静态类,那就是五个不同的位置引用一个对象。所以我需要处理线程同步。我不能只写入一个变量,因为另一个访问可能会覆盖该变量,无论我如何同步对该共享资源的访问。所以我总是需要返回新的变量。此外,如果我使用许多不同调用方法使用的静态类,则会导致队列访问共享资源。因为实用程序类是静态的,而且它们就是这样——实用程序——它们将被我的代码库中的许多类使用。在这种情况下使用静态类可能不明智吗?
正如 MSDN 文档所解释的,我只会将静态类用于全局实体。所以一个封装了我的代码库细节的类——只有一个代码库,这个类将包含关于行数等的细节。这不是基于实例的,就像一个订单类(1个客户-1个订单-1个或更多订单) )。
在这种情况下,改用结构体是否是一个好的设计决策?
【问题讨论】:
标签: c#