在我的项目中有一个文档管理系统。有一个基类Document
类和一些派生类。还有一个管理文档的打开/关闭/激活操作的类。FooManager调用Foo.OnSthHappened()是一个糟糕的做法吗?
的Document
及其派生类可能希望在被加载到做一些事情,关闭等,但状态变化是由管理器类的控制,所以目前有(虚拟)的方法,如OnLoaded()
,OnClosed()
在Document
类由DocumentManager
类调用。除了将这些方法暴露给公众似乎没有必要,它工作正常。
另一种设计是使DocumentManager
类射击事件和每个Document
实例订阅这些事件。恕我直言,它没有造成很大的差异,但引入了内存泄漏的风险。
我有一种感觉:这些都不是“解决方案”,并有针对该问题的最佳实践的权利。请有人赐教我吗?
Manger,Handler等术语没有说明类的功能。应该避免。 –
我不知道我明白这一点。你是说DocumentManager没有描述类的功能,因此它应该被命名为不同的东西? –