我正在写一个C#网络库(主要是作为一个学习练习,如果有人真的最终使用它,那对我来说并不重要,因为我确信解决方案已经存在).
到目前为止,我对我的结构非常满意......我有几层客户端/服务器可用,可以通过套接字以原始字节进行通信,或者通过序列化消息对象稍微复杂一些.
我遇到的问题(问题?)是的时候正是我要声明的方法,属性或事件sealed,virtual或没有限定符.
我知道所有这些都做了什么 - sealed阻止了类的继承,或者进一步覆盖了一个方法.virtual将通过方法覆盖允许多态行为.
但是,由于我正在设计一个类库,所以我不确定何时使用它们.这是一个可扩展性的问题,我认为......我提供了一些接口,一个或两个抽象类,以及我的库的消费者使用或扩展的一些具体实现,但是我很难确定何时它是一个"好主意"明确禁止派生类或允许覆盖功能.
在设计我的类以供其他人使用时,请记住哪些一般指示或建议?