design-patterns相关内容

在 Python 中使用命令模式执行/撤消

我已经读到使用命令模式是完成执行/撤消功能的最流行的方法之一.事实上,我已经看到可以堆叠一堆动作并反转它们以达到给定状态.但是,我不太确定如何在 Python 中做到这一点,而且我阅读的大多数教程都涉足概念,但没有展示 Python 中的实际实现. 有谁知道 Python 中的执行/撤消功能是如何工作的? 作为参考,这是我的(幼稚且可能充满错误)代码: # 命令类绘图命令:def _ ..
发布时间:2022-01-23 08:47:05 Python

自定义 WPF 命令模式示例

我已经完成了一些 WPF 编程,但我从未得到过的一件事是命令模式.每个示例似乎都是内置的,编辑、剪切、粘贴.任何人都有自定义命令的最佳实践示例或建议? 解决方案 啊哈!一个我可以回答的问题!首先,我应该提到,我个人发现在代码中定义和连接命令比在 XAML 中更容易.它允许我比所有 XAML 方法更灵活地连接命令的处理程序. 您应该弄清楚您想要拥有哪些命令以及它们与什么相关.在我的应用 ..
发布时间:2022-01-23 08:23:17 其他开发

MVP 和多个用户控件

我正在尝试使用 MVP 模式,但遇到了设计问题.我正在开发一个包含多个 UserControl 的应用程序.UserControls 本身彼此无关,仅代表实际模型的一个子集.根据我的阅读,人们倾向于说每个视图应该使用一个演示者.这似乎是有道理的,但如果我有 30 个用户控件,我真的想要 30 个演示者吗?另一方面,如果我有 1 个 Presenter 和 1 个 View 代表整个“应用程序"视图 ..
发布时间:2022-01-22 19:03:12 C#/.NET

是列表<>比 ASP.Net 中 UI 层的 DataSet 更好?

我想将数据从我的数据访问层获取到我的业务层,然后准备在我的 UI 中使用. 所以我想知道:通过 DataReader 读取我的数据并使用它来填充 List 或填充 是否更好DataSet 并将 DataSet 发送到 UI 层 ??. 我对良好的性能和可扩展性感兴趣. 解决方案 你的 UI 层应该远离你的数据访问策略——它不应该处理原始数据.因此,您的 U ..
发布时间:2022-01-21 12:58:50 C#/.NET

对 ajax 请求进行排序

我发现有时我需要迭代一些集合并对每个元素进行 ajax 调用.我希望每个调用在移动到下一个元素之前返回,这样我就不会向服务器发送请求——这通常会导致其他问题.而且我不想将 async 设置为 false 并冻结浏览器. 通常这涉及设置某种迭代器上下文,我会在每次成功回调时逐步执行该上下文.我认为必须有一个更清洁更简单的方法? 有没有人有一个聪明的设计模式,如何通过一个集合来巧妙地工作, ..
发布时间:2022-01-21 11:27:17 前端开发

是否有一个 Eclipse 插件可以为“javascript 显示模块模式"创建大纲视图?

我喜欢 eclipse,经过一些调整,它可以用于 javascript 编程.有语法补全、linting、格式化,还有“大纲",尽管只适用于简单的 javascript 文件. 让我烦恼的是,对于遵循“显示模块"设计模式的文件没有“大纲视图".这恰好是我最喜欢的编码风格. 是否有某个插件可以在 Eclipse 中添加一个“扩展"大纲视图,该视图能够“查看内部"以“显示模块样式"编写的 ..
发布时间:2022-01-20 21:39:48 Java开发

EF6 + DatabaseFirst 的存储库模式

当前系统: 我正在开发一个如下所示的多层项目(按流程顺序),我正在学习并尝试首先在 EF 数据库上使用 UOW 实现 Repo Pattern. 服务(Web API) 商业(C# 类库) 存储库(回购模式 + UOW) ViewModels(由我的服务用于发送到我的 UI 层) 数据(实体) 数据库 (SQL Server) 存储库: 通用存储库: 公共接口I ..

qml 文件夹列表模型

我正在尝试使用 FolderListModel,根据这个 example 像这样: 列表视图{anchors.fill:父级文件夹列表模型{id:文件夹模型文件夹:“C:/Qt/Projects/"显示目录:真showDotAndDotDot: 真名称过滤器:[“*"]排序字段:“名称"}零件 {id: 提交委托文本 { 文本:文件名 }}型号:文件夹型号代表:提交代表} 我想以递归方 ..
发布时间:2022-01-19 23:17:40 其他开发

ViewPager 和 Fragment — 存储 Fragment 状态的正确方法是什么?

片段似乎非常适合将 UI 逻辑分离到某些模块中.但是与 ViewPager 一起,它的生命周期对我来说仍然很模糊.所以非常需要上师的思想! 编辑 请参阅下面的愚蠢解决方案;-) 范围 主要活动有一个带有片段的ViewPager.这些片段可以为其他(子主)活动实现一些不同的逻辑,因此片段的数据通过活动内部的回调接口填充.首次启动时一切正常,但是!... 问题 当 ..

为什么我们在 DOM 中需要 event.stopPropagation()?它是糟糕的架构模式吗?

在日常前端开发中,我经常使用 DOM 作为全局事件总线,客户端应用程序的每个部分都可以访问它. 但在我看来,其中有一个“特性"可以被认为是有害的:任何侦听器都可以阻止传播通过此“总线"发出的事件. 所以,我想知道,这个功能什么时候有用.允许一个听众“禁用"所有其他听众是否明智?如果该听众不具备对此类行动做出正确决定所需的所有信息怎么办? 更新 这不是关于“什么是冒泡和捕获" ..
发布时间:2022-01-19 12:55:51 其他开发

动态绑定或开关/案例?

这样的场景: 我有不同的对象执行与各自的 func() 实现类似的操作. func_manager() 根据不同的对象调用 func() 有两种解决方案 解决方案1:使用c++中指定的虚函数字符.func_manager 的工作方式根据不同的对象点传入不同. 类对象{虚拟无效函数()= 0;}类 Object_A:公共对象{无效函数(){};}类 Object_B :公共对象{无效函数 ..
发布时间:2022-01-19 11:00:37 C/C++开发

大型嵌套 switch 语句的设计模式

我搜索了许多关于重构大型 switch 语句的文章. 但他们没有做我想做的事.我要去遇到的问题是有一个巨大的 switch 语句,它根据两个不同的值调用不同的方法,比如说一个 type 和一个 代码. 目前,我会这样处理: 开关(类型){案例类型.Type1:处理类型1(代码);休息;案例类型.Type2:处理类型2(代码);休息;}无效句柄类型N(代码){开关(代码){...}} ..
发布时间:2022-01-19 10:55:29 其他开发

麻烦使多态性打败那些 switch/case 语句

继续前面的问题(此处,以及这里),我实现了一个基本的命令模式,创建了我的命令类并编码到一个接口,所以当使用任何命令时,调用 execute() 方法. 但是,我仍然发现自己无法动摇这些案例陈述:我正在从一个主/决策字符串中读取每个字符,该字符串由随机重复的字符 A、B、C 或 D 组成,然后我检索从地图中执行命令的相关实现并调用其执行方法. 我的设计是这样的: 公共接口命令{无效执行 ..

避免切换类型的设计模式或公认的解决方案

我正在尝试找到一个好的、干净的设计模式或普遍接受的实现来处理类型的枚举,其中单个类型仅在运行时才知道. 我知道以前有人问过类似的问题,但我仍然不清楚替代实现是否比 switch 或一系列 if-thens 具有显着优势. 首先,我要演示几个实现,然后我要问一个问题:这些实现比简单开关更好还是更受欢迎?如果是这样,为什么?如果没有,为什么不呢? 在我的应用程序中,我通过流发送和接收 ..
发布时间:2022-01-19 10:45:26 C#/.NET

Switch(Case)总是错的吗?

在某些情况下 switch(case) 是一个很好的设计选择(除了简单性)而不是策略或类似模式...... 解决方案 在测试原语的值时使用开关.(即整数或字符). 在不同的类型之间进行选择时使用多态性. 例子:测试用户输入的字符是否是“a"、“b"或“c"之一是开关的工作. 测试你正在处理的对象是狗还是猫是多态调度的工作. 在许多语言中,如果您有更复杂的值,您可能无 ..
发布时间:2022-01-19 10:44:06 其他开发

switch 语句不好?

我最近了解到 switch 语句在 OOP 中很糟糕,特别是来自 Robert Martin 的“Clean Code"(p37-39). 但是考虑一下这个场景:我正在编写一个游戏服务器,接收来自客户端的消息,其中包含一个整数,表示玩家的动作,例如移动、攻击、拾取物品……等等,会有超过 30 种不同的行动.当我编写代码来处理这些消息时,无论我想到什么解决方案,它都必须在某个地方使用 swit ..
发布时间:2022-01-19 10:24:01 其他开发

在 Spring/J2EE 应用程序中分离只读和读写

我们在项目中使用 Spring、Spring-Data 和 JPA. 对于生产服务器,我们希望设置数据库集群,使所有读取查询都定向到一台服务器,所有写入查询都定向到另一台服务器. 这显然需要对 DAO 的构建方式进行一些更改. 如果到目前为止,有人一直在使用 Spring-Data/JPA 遵循食谱风格的 DAO 创建,其中一个 DAO 实现负责读取和写入,那么有谁知道如何实现这 ..
发布时间:2022-01-18 19:27:38 数据库