![]() |
1
1
提供删除器。
它消除了关于用户应该如何删除对象的任何困惑(
此外,在某些版本的Visual Studio中,运行库的工作方式可能意味着
不能
但比这两个选项都好(IMO):返回
|
![]() |
2
1
对于良好的封装/秘密隐藏,我更喜欢第一种方法(即提供自定义删除方法)。您获得了更大的灵活性,例如,如果对象创建成本高昂,您可能会有一些对象池
根据您的场景,您可能永远不会需要这样的东西(如果您只在少数地方使用这种方法)。尽管如此,由于使用这种封装不会带来很多复杂性,所以在大多数情况下,我可能更喜欢第一种方法。 |
![]() |
3
1
创建的详细信息只有DLL知道。 客户端不知道他们必须做什么才能正确处理对象。 可以预期,DLL将提供一种适当处理对象的方法,即使在创建时没有特殊原因说明客户端不应自行删除该对象。 如果在早期版本中没有提供处理对象的方法,那么创建和处理对象的方式将来可能会发生变化,并且客户端的代码将中断。 |
![]() |
Milan · 在Java中加载远程库 7 年前 |
![]() |
aquila · 加载库中的对象实例应该由库删除还是从客户端代码中删除? 11 年前 |
![]() |
jiten · vc++应用程序按序号调用vc++dll 12 年前 |