通过类层次结构冒泡事件的体系结构
architecture for bubbling events through classes hierarchy
我有一个简单的应用程序,它由一个控制台应用程序和一个 class 库组成。 class 库在它的几十个 class 中完成了所有繁重的工作。其中一些 class 是 class 库内部的,即使是公开的,我也不希望控制台应用程序完全了解它们。
所以我可以有类似的东西:
- 我的Program.csclass正在运行。
- 我的 DoSomething.cs class 正在被 Program.cs 调用。
- 我的 DoSomethingInParticular.cs class 正在被 DoSomething.cs
调用
- 等等,等等。
是否有一种普遍理解的方式让 Program.cs 了解较低的变化?
在功能上,我想让我的控制台应用程序将较低级别的事件写出到控制台窗口,这正是我尝试使用它的地方。
一个模块只知道它所知道的。
我为你看到了 2.1 的主要路径。
1) 在程序可以监听的 DoSomething 中创建 public 个事件。
在 DoSomethingInParticular 中创建 public 个 DoSomething 可以监听的事件。
当 DoSomething 收到一个事件时,它会决定它是否适合冒泡并将其转换为它自己的一个事件并引发它以供程序接收。
1.1) 将携带structures/classes的数据放在另一个common lib中的events中。然后当接收到一个事件时,DoSomething 不必转换它,而只决定是否冒泡它。
2) 制作一个自己的事件处理库来处理谁接收什么。
不知道更多我会选择 1.1。
HTH
我有一个简单的应用程序,它由一个控制台应用程序和一个 class 库组成。 class 库在它的几十个 class 中完成了所有繁重的工作。其中一些 class 是 class 库内部的,即使是公开的,我也不希望控制台应用程序完全了解它们。
所以我可以有类似的东西:
- 我的Program.csclass正在运行。
- 我的 DoSomething.cs class 正在被 Program.cs 调用。
- 我的 DoSomethingInParticular.cs class 正在被 DoSomething.cs 调用
- 等等,等等。
是否有一种普遍理解的方式让 Program.cs 了解较低的变化?
在功能上,我想让我的控制台应用程序将较低级别的事件写出到控制台窗口,这正是我尝试使用它的地方。
一个模块只知道它所知道的。
我为你看到了 2.1 的主要路径。
1) 在程序可以监听的 DoSomething 中创建 public 个事件。
在 DoSomethingInParticular 中创建 public 个 DoSomething 可以监听的事件。
当 DoSomething 收到一个事件时,它会决定它是否适合冒泡并将其转换为它自己的一个事件并引发它以供程序接收。
1.1) 将携带structures/classes的数据放在另一个common lib中的events中。然后当接收到一个事件时,DoSomething 不必转换它,而只决定是否冒泡它。
2) 制作一个自己的事件处理库来处理谁接收什么。
不知道更多我会选择 1.1。
HTH