【发布时间】:2022-04-14 16:14:03
【问题描述】:
总结:我想知道在C#中创建跨平台(例如桌面、Web和Silverlight)类的最佳设计,不重复代码,各有优缺点每个设计。
我经常为一个应用领域编写新的、有用的类;他们没有理由不能跨域工作。如何构建我的代码以使其成为理想的跨平台?
例如,假设我想创建一个具有间隔和 on-tick 事件的通用“MyTimer”类。在桌面上,这将使用内置的 .NET 计时器。在 Silverlight 中,我会使用 DispatchTimer。
设计#1 可能是“创建一个类并使用预处理器指令进行条件编译”,例如。 “#IF SILVERILGHT ...”。但是,这会导致代码难以理解、可读性和可维护性降低。
设计#2 可能是“创建名为 DesktopTimer 和 SilverlightTimer 的子类并使用来自 MyTimer 的子类”。这将如何运作?
虽然这是一个小例子,但我可能有更复杂的类,例如,使用特定于平台的类(IsolatedStorage、DispatchTimer 等)但不直接替换它们。
我还可以使用哪些其他设计/范式?
【问题讨论】:
标签: c# architecture cross-platform