我有一个简单的两个聚合根和一个常规实体的检查域.
Tenant,UserGroup以及User在这个特定样本中的位置Tenant和User弥补两个AggregateRoots.
当从UI /服务层接收到命令时,它到达操作只写域的命令处理程序.
您可以说User根本不应该是AggregateRoot,但由于它将被其他人引用,因此它不能是常规实体.(是?)
这两个AggregateRoot需要进行通信.A User不能在不属于a的情况下创建,a UserGroup是有界上下文中的实体Tenant.据推测,我们可以通过构造函数创建一个用户,因为它是一个简单的约束.User.Create(TenantId, UserGroupId)
它生成一个DomainEventwith Date,AggregateVersion和AggregateId(用户).现在我们来到模糊的部分.
打开将此事件提交到商店,此事件将被广播到总线(内存,无论如何).这一点,该点域的事件处理程序,类似命令处理,抓创建的用户,并通知/操纵Tenant的UserGroup添加UserId?
我对解决这个问题的想法是否会走向完全错误的方向?
我想弄清楚什么会给我最好的代码.我意识到,这当然有点主观.
我有一个访问数据库的应用程序,我已经编写了一个程序集,该程序集从使用此程序集的所有应用程序中隐藏有关此数据库的详细信息.
我还有一个WPF应用程序,它使用这个程序集来显示我想使用数据绑定的各种成本计算.
数据绑定只能用于对象的属性(就我工作而言).这意味着我需要一个对象,最好是INotify支持和一系列对象.但是,我更喜欢在处理数据库访问的程序集之外保留INotify和WPF.
其他人如何解决这个问题:将WPF内容保存在数据库层之外(例如INotify)和WPF内部允许绑定?写一个包装?或者大多数人将"属性"/"INotify"类作为数据传输对象直接放入数据库层?
我有一段代码将中缀表达式转换为内存中的表达式树.这很好用.只有一个小问题.我只是想弄清楚如何正确地使用一元运算符(正确的关联运算符).
使用以下中缀表达式:
+1 + +2 - -3 - -4
Run Code Online (Sandbox Code Playgroud)
我希望RPN为:
1+2++3-4--
Run Code Online (Sandbox Code Playgroud)
然而,我能找到的在线中缀后转换器都没有像我期望的那样处理这个例子.有没有人对处理右关联运算符有明确的解释,特别是那些可以被误认为是一元运算符的二元运算符?
编辑/澄清:我想知道如何在从中缀到后缀的翻译过程中处理一元运算符.即:识别相同的' - '字符,例如是一元而不是二元运算符,因此具有不同的优先级.我会想到使用状态机可能有两个状态但是......?