- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我即将完成的最近一个项目中,我们使用了一种体系结构,该体系结构作为来自网络/服务层的交互的顶层使用 XXXManager 类。
例如,有一个按计划运行的 Windows 服务,可将来自多个不同数据源的数据导入我们的系统。在此服务中,调用了几个“管理器”类,即 CPImportScheduleManager、CPImportProcessManager 等。
现在,这些管理器类所做的不仅仅是将方法向上传递到链中以供在网络/服务层中使用。例如,我的 UserManager.Register() 方法不仅通过较低级别的程序集保留用户,而且还会向用户发送 WAP 推送并确定所使用的手机等。
有人向我建议,这种类型的架构是尝试让 OOP 适应过程模型的常用方法。我可以在这里看到他们的观点,但我想知道的是,对于这个顶级类集,任何 Web/服务层都可以简单地调用相同的通用方法,而无需重写代码。因此,如果我想编写一个在某个时候注册用户的 Web 服务,我可以再次调用 UserManager.Register() 方法,而不必再次重写所有逻辑。
我从来都不是解释自己的最佳人选,但如果我的胡言乱语有道理,请随时就您的替代方案提出建议。
干杯,克里斯。
最佳答案
对于处理一组给定实体的工作流或复杂任务的服务,管理器通常是一种过度使用的命名策略。但是,如果它完成了工作,那么它不一定是坏事。
我想问的一个重要问题是,在经理们的领导下发生了什么?如果它们只是协调流程的工作流程,例如注册用户,那么它们是具有不同名称的 Controller (MVC)。但是,如果它们包含大量业务逻辑(我指的是取决于一个实体或一组实体的状态的条件逻辑),那么我会仔细查看是否可以通过将其设为自己的类(class)或将其移至具有适当责任的类(class)。
更新:从它的声音来看,你的想法大体上是正确的。您有一组处理业务流程协调的类,这些业务流程不关心它们是否被 WebService、Webform 或其他任何东西使用。然后你说你想在此之上添加你的 WebService 层并利用这些类。这是一件好事 (tm)。
关于architecture - 经理类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/139034/
我一直在我的观点上得到这个错误。我无法解决,因为代码类似于djangos教程,只是更改了对象名称。这是我的views.py的代码: from django.http import HttpRespon
我正在尝试做一个简单的查询,但我得到了 'Manager' object is not iterable error. 我的代码(相关部分): def sort(request): sort_
我是第一次构建 spring 应用程序。我遇到了很多并发问题,我怀疑我管理后端的方式有问题。我看到的后端代码和我见过的示例之间的唯一区别是管理器类。 在我的代码中,我有我的模型(由 hibernate
在我遇到不好的例子之前总结一下,et al:我正在尝试制作一个应用程序,我不必在所有模型中编写代码来限制对当前登录帐户的选择(I' m 不使用身份验证或帐户或登录的内置功能)。 即,我不想必须做这样的
我目前正在设计一个需要管理特定硬件设置的软件。 硬件设置如下: 系统 - 系统包含两个相同的设备,并具有相对于整个系统的某些功能。 设备 - 每个设备包含两个相同的子设备,并且具有与两个子设备相关的特
我在我的 Android 应用程序中使用 RoboGuice 3.0.1 和 RoboBlender。我想要一个全局事件管理器,并注意到 RG3.0 已经有了它,如下所述: https://githu
我正在尝试创建一个多态成像系统,它允许各种对象具有封面图像和附加图像。使用 belongs_to :imageable 创建 Image 模型是否正确?或者,我是否应该分离我的逻辑,以便为每个将继承图
我刚刚在运行 rvm get 时收到此消息 RVM can not be run with `set -o posix`, please turn it off and try again. 这也可能
我正在尝试使用 SocialAuth,并根据本指南进行设置: https://github.com/3pillarlabs/socialauth/wiki/Getting-Started-with-i
我正在尝试使用自定义用户模型和自定义用户管理器来构建 super 用户。我做了与 django 文档关于 create_superuser 方法完全相同的事情,并且在我的 shell 中,我能够使用电
我正在尝试使用 AVD 管理器启动虚拟设备,我注意到问题出现在 Android 操作系统早于 Android 6.0 (API 23) 的设备上。 我正在使用 Xamarin.Android C# (
我有两台装有 CentOS 6.5 的 PC client86-101.aihs.net 80.94.86.101 client86-103.aihs.net 80.94.86.103 clouder
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我正在使用 Terraform 代码在 AWS 中创建 Secret。我的 Jenkins 管道将每 2 小时创建一次基础设施并销毁它。 2 小时后重新创建基础设施后,AWS Secrets 不允许我
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 2年前关闭。 Improve this qu
我正在研究 GPS 功能。 我已推迟更新设置,并且正在相应 GPS 委托(delegate)内处理事件 func locationManager(manager: CLLocationManager,
我是一名优秀的程序员,十分优秀!