design-patterns相关内容

装饰\委托一个文件对象来添加功能

我一直在编写一个小的 Python 脚本,它使用 subprocess 模块和一个辅助函数来执行一些 shell 命令: import subprocess as spdef 运行(命令,描述):"""以格式化的方式运行命令.返回其返回码."""开始=日期时间.日期时间.现在()sys.stderr.write('%-65s' % 描述)s=sp.Popen(命令,shell=True,stde ..
发布时间:2022-01-18 15:35:43 Python

串行数据的二进制通信协议解析器设计

我正在重新设计一个字节流(串行数据,一次接收 1 个字节)的通信协议解析器设计. 数据包结构(不可更改)为: ||起始分隔符(1 字节) |消息 ID(1 字节)|长度(1 字节) |有效负载(n 字节)|校验和(1 字节)|| 过去,我以过程状态机方法实现了此类系统.当每个字节的数据到达时,状态机被驱动来查看输入数据在哪里/是否适合一次一个字节的有效数据包,一旦整个数据包组装完毕,基于 ..
发布时间:2022-01-18 14:32:44 C#/.NET

为什么我们需要将委托设置为自我?为什么编译器不默认它?

我认为我完全理解委托的概念,我的问题是当我们这样做时: class someViewController : UIViewController, UITableViewDelegate{} 我们是否曾经不想将 tableView.delegate 设置为 self? 如果没有任何机会,为什么 Xcode 强迫我们在这里做一些额外的工作? 如果有可能将 tableView.deleg ..
发布时间:2022-01-18 12:54:29 移动开发

避免在多个类似方法中重复代码 (C#)

大家好! 我在 C# 中有一组(可能还有几十个)非常相似的方法.它们都建立在几乎相同的模式上: ResultObjectType MethodX(...各种类型的输入参数...){嵌套准备代码在这里...{{resultObject = ExternalClass.GetResultForMethodX(MethodX的输入参数);}}在这里嵌套结果处理代码...返回结果对象;} 重复/ ..
发布时间:2022-01-18 12:54:12 C#/.NET

使用代表的好处?

我希望在 VB.NET 或 C# 或其他一流的 .NET 语言中实现观察者模式.我听说委托可以用于此目的,但无法弄清楚为什么它们比在观察者上实现的普通旧接口更受欢迎.所以, 为什么我应该使用委托而不是定义自己的接口并传递对实现它们的对象的引用? 为什么我要避免使用委托,而使用良好的老式接口? 解决方案 当您可以直接调用方法时,您不需要委托. 当调用方法的代码不知道/不关心它调 ..
发布时间:2022-01-18 12:20:37 C#/.NET

Groovy 中@Delegate、@Mixin 和 Traits 之间的区别?

有人能解释一下我什么时候想使用 Groovy Traits vs. Mixins (@Mixin) vs. Delegates (@Delegate)?也许一些权衡和设计问题会有所帮助. 它们似乎都允许重用多个“类"行为.谢谢.:-) 这个 SO 线程也很有帮助:@Delegate 之间的区别和 Groovy 中的 @Mixin AST 转换 解决方案 我同意,它们似乎都允许重 ..
发布时间:2022-01-18 12:05:30 其他开发

选项卡式导航视图的正确设计模式?

这几天我一直在纠结这个问题,我承认我需要帮助. 我的应用程序的根视图控制器是一个标签栏控制器.我想让每个标签栏都有一个不同的导航控制器.这些导航控制器具有完全不同的行为. 那么我该如何根据类进行设置呢?根据 Apple 的文档,我不应该继承 UINavigationViewController.那么我应该把驱动这些导航控制器的代码放在哪里呢?这一切都会被扔进 App Delegate ..

.NET 的状态机框架

我的工作中有一个系统,它基本上是一个消息驱动的状态机.它接收各种类型的消息,根据消息查找一些上下文/状态,然后根据消息和当前状态决定要做什么.通常结果是一条消息被发送出系统. 是否有任何好的开源框架可以在 .NET 中实现状态机?我查看了最新版本的 Windows Workflow,它似乎是一个不错的选择;但是,我对默认的持久性机制(我们需要报告状态转换数据)、可测试性以及 WF 团队正在重 ..
发布时间:2022-01-16 20:32:45 C#/.NET

Java CLI UI 设计:框架还是库?

我目前正在开发一个只需要命令行界面的小型实用程序,并且我开始想知道 Java 是否提供了任何标准的创建 CLI 的方法,类似于用于 GUI 的 Swing 等.我对命令行参数和解析它们并不真正感兴趣,而是用户与程序使用它的基于命令的交互.这适用于 GUI 根本不需要或不是使用该程序的选项的情况. 在谷歌上搜索该主题几乎只会得到关于如何使用 BufferedReader 等与用户进行基本交互的 ..

CQRS 示例和截屏视频

我正在寻找一些带有一组合理单元测试的深入的端到端 CQRS 示例. 另外,如果有人也知道一些 CQRS 截屏视频,那将非常方便. 这些例子我已经知道了 CQRS 信息 超级简单CQRS 解决方案 这里有一个实现 MarkNijhof. 但在阅读了 CQRS 信息网站上的文档后,我最喜欢的资源是 Think Before Coding 查看帖子标签.(http:// ..
发布时间:2022-01-16 19:48:25 C#/.NET

注册表设计模式......好还是坏?

以下代码来自教程(http:///net.tutsplus.com/php/creating-a-php5-framework-part-1/),不是我的. 我对这段代码有几个问题... 文章声称它使用的是“注册表设计模式";这是该设计在​​业界的通用名称吗? 还有其他类似的模式会是更好的选择吗? 这种模式是否被认为是在 MVC 框架的上下文中实施的好习惯? 我只是想弄清楚我 ..
发布时间:2022-01-16 19:37:39 PHP

使用 Java 构建插件系统的最佳方法

您将如何为您的 Java 应用程序实现插件系统? 是否有可能拥有一个易于使用(对于开发人员)的系统,它可以实现以下目标: 用户将他们的插件放入应用的子目录中 插件可以提供配置屏幕 如果您使用框架,许可证是否与商业开发兼容? 解决方案 首先你需要一个所有插件都需要实现的接口,例如 公共接口插件{公共无效负载(PluginConfiguration pluginConfigu ..

垃圾收集器何时会擦除使用单例模式的对象的实例?

垃圾收集器何时会清除使用单例模式的对象实例? 物体是否比普通物体停留的时间更长? 如何在 Java 中手动强制删除/垃圾回收对象? 谢谢. 解决方案 有一个对单例的静态引用,所以在类加载器符合垃圾回收条件之前,它不符合垃圾回收条件. 您不能强制对任何对象进行垃圾回收;您可以请求垃圾收集器使用 System.gc() 但这只是一个请求. 如果您真的想让“单例"符 ..
发布时间:2022-01-16 09:41:25 Java开发

使用 Selenium PageObject 设计模式的最佳方法是什么

我正在使用 Selenium 2 Web 驱动程序和 C#.Net 创建测试.在阅读了大量 Selenium 文档后,我仍然不确定如何使用 PageObject 设计模式进行测试. 许多 selenium 示例仅在 Java 中显示,并且 .Net 的 API 绑定并不总是像人们想象的那样相似,这是由于某些语言设置的限制和标准. 在 .Net Selenium Web Driver 中 ..
发布时间:2022-01-16 09:03:56 C#/.NET

页面对象模式和替代方案

当您自动化 Web UI 测试时,您希望组织测试,以便它们可维护并尽可能减少代码重复.页面对象模式即将到来.p> 您在现实世界的项目中尝试过吗?有没有其他选择?您如何为复杂的网站建模(很少有嵌套的母版页、弹出窗口、带有疯狂验证的大型表单)?我对一般模式以及特定情况(Selenium/ASP.NET MVC/NUnit)感兴趣. 解决方案 你问了很多问题,我试着回答几个. 我在使用 ..
发布时间:2022-01-14 17:33:28 其他开发

如何标记一个方法是强制性的?

假设您使用 builder 模式创建了一个名为 Person 的类,并假设 Builder 类包含方法 body()、head()、arms() 当然还有 build() 并且你认为方法 head() 和 build() 对于这个类的用户来说是必须的. 我们希望以某种方式将这些方法标记为强制性,如果可能的话,使用注释.如果这个类的用户试图构建一个 Person 实例但忘记调用这些方法中的任何 ..
发布时间:2022-01-13 10:41:10 Java开发

如何为秒值打印高达 6 位精度的时间

我在列中有一个时间戳类型的值.假设我有一个值 2007-05-04 08:48:40.969774 现在,当尝试从数据库中获取值并将此时间戳值返回给函数时,我应该使用什么 SimpleDateFormatter 模式,以便也返回秒旁边的小数部分. 我使用了 yyyy-MM-dd hh:mm:ss,但它只返回到秒数,并忽略秒数旁边的分数 (.969774).我还需要帮助以 6 位精度返回 ..
发布时间:2022-01-13 09:30:33 Java开发

python pool apply_async 和 map_async 不会阻塞完整队列

我对 python 还很陌生.我正在使用多处理模块读取标准输入上的文本行,以某种方式转换它们并将它们写入数据库.这是我的代码片段: 批处理 = []池 = 多处理.池(20)我 = 0对于我,枚举(sys.stdin)中的内容:批处理附加(内容)如果 len(batch) >= 10000:pool.apply_async(插入, args=(batch,i+1))批处理 = []pool.ap ..

微服务架构 - 当订单无关紧要时通过服务传递消息

Tl;dr:“我如何通过一堆异步、无序的微服务推送消息,并知道该消息何时通过每个微服务?" 我正在努力为特定的微服务架构寻找合适的消息传递系统/协议.这不是一个“哪个最好"的问题,而是一个关于我对设计模式/协议的选择是什么的问题. 我在开始队列中有一条消息.假设一个带有序列化 JSON 的 RabbitMQ 消息 我需要该消息通过任意数量的微服务 这些微服务中的每一个都是长期运行的 ..

我应该使用哪种 jQuery 插件设计模式?

我需要构建一个 jQuery 插件,它会为每个选择器 ID 返回一个实例.该插件应该并且只会用于具有 id 的元素(不可能使用匹配许多元素的选择器),因此应该像这样使用它: $('#element-id').myPlugin(options); 我需要能够为插件提供一些私有方法以及一些公共方法.我可以做到这一点,但我的主要问题是每次调用 $('#element-id').myPlugin() ..
发布时间:2022-01-11 13:00:26 前端开发