问题标签 [design-patterns]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
2360 浏览

html - 导航面包屑的灵感来源

我正在寻找导航“面包屑”的灵感来源和/或设计模式。到目前为止,我已经在 Pattern Tap 上找到了面包屑集合。有谁知道任何其他来源?

0 投票
22 回答
36625 浏览

design-patterns - 撤消引擎的设计模式

我正在为土木工程应用程序编写结构建模工具。我有一个代表整个建筑的巨大模型类,其中包括节点、线元素、负载等的集合,它们也是自定义类。

我已经编写了一个撤消引擎,它在每次修改模型后保存一个深层副本。现在我开始思考我是否可以用不同的方式编码。除了保存深层副本,我也许可以保存每个修改器操作的列表以及相应的反向修改器。这样我就可以将反向修饰​​符应用于当前模型以撤消,或将修饰符应用于重做。

我可以想象您将如何执行更改对象属性等的简单命令。但是复杂命令呢?就像在模型中插入新节点对象并添加一些保持对新节点引用的线对象一样。

一个人将如何实施呢?

0 投票
16 回答
5490 浏览

.net - finally 块的意义是什么?

除了语法,有什么区别

编辑:在.NET 2.0 中?


所以

在行为上是等价的吗?

0 投票
2 回答
274 浏览

object - 两个对象重叠的图案

我确定这已经被询问和回答了,所以我提前为此道歉,但我没有找到要搜索的正确关键字。搜索“模式”会遇到太多的问答,没有用处。

我正在开发一个回归测试应用程序。我在屏幕上显示一个表单,根据哪个用户登录到应用程序,一些字段应该是只读的。所以我可以抽象一个字段对象,也可以抽象一个用户对象,但是我应该用什么模式来描述这两个概念的交集呢?换句话说,对于字段 1 和用户 A,我应该如何描述该字段应该是只读的?似乎只读(或不是)应该是 Field 类的属性,但正如我所说,它取决于哪个用户正在查看表单。我考虑过一个简单的二维数组(例如 ReadOnly[Field,User] = True),但我想确保我选择了最有效的结构来表示它。

有没有关于这种数据结构的软件设计模式?我是不是把事情复杂化了——二维数组会是最好的方法吗?正如我所说,如果有人提出并回答了这个问题,我深表歉意。我在这里搜索并没有找到任何东西,谷歌搜索也没有找到任何东西。

0 投票
15 回答
16071 浏览

design-patterns - 处理命令行参数的设计模式是什么

如果您正在编写一个可以从命令行执行的程序,您通常希望为用户提供多个选项或标志,以及可能不止一个参数。我已经绊倒了很多次,但是是否有某种设计模式用于循环 args 并调用适当的处理函数?

考虑:

使用语言的任何内置函数检索参数后,如何组织处理函数?(欢迎使用特定语言的答案,如果这有助于您表达答案)

0 投票
6 回答
1899 浏览

.net - 使用 Microsoft 的应用程序块

我没有做过很多 .NET 编程,但我检查了一些由 Microsoft 的模式和实践组发布的应用程序块。我想知道这些通常是如何使用的:

  • 直接链接到应用程序
  • 添加到应用程序并使用它们构建的源代码,也许还有一些自定义
  • 编写特定于应用程序的代码时用作参考的示例代码

我确信这三种用法都很常见,但最典型的使用模式是什么?

是否有一些特定的应用程序块被“每个人”使用?

注意:这个问题与Enterprise Library Application Blocks OR Home Grown Framework相关,但不一样?.

0 投票
3 回答
21303 浏览

c# - Activator.CreateInstance(string) 和 Activator.CreateInstance() 不同之处

不,这不是关于泛型的问题。

我有一个工厂模式,其中包含几个具有内部构造函数的类(如果不通过工厂,我不希望它们被实例化)。

我的问题是CreateInstance失败并出现“没有为此对象定义无参数构造函数”错误,除非我在非公共参数上传递“true”。

例子

我想让工厂通用以使其更简单,如下所示:

但是,我无法找到如何传递该“真实”参数以使其接受非公共构造函数(内部)。

我错过了什么还是不可能的?

0 投票
10 回答
35094 浏览

c# - C#中的lock关键字

我从 MSDN 了解 lock 关键字的主要功能

lock 语句(C# 参考)

lock 关键字通过获取给定对象的互斥锁、执行语句然后释放锁来将语句块标记为临界区。

什么时候应该使用锁?

例如,它对多线程应用程序很有意义,因为它可以保护数据。但是当应用程序不分离任何其他线程时是否有必要?

使用锁是否存在性能问题?

我刚刚继承了一个在任何地方都使用锁的应用程序,它是单线程的,我想知道我应该把它们留在里面,它们甚至是必要的吗?

请注意,这更像是一个常识性问题,应用程序速度很好,我想知道这是否是将来要遵循的良好设计模式,或者除非绝对需要,否则应该避免这种情况。

0 投票
2 回答
1600 浏览

c++ - C++ 测验 - 单例

我很快就会在我的博客上发布一篇文章,但我想先确认我没有错过任何内容。

找到一个我错过的例子,我会在我的帖子中引用你。

主题是失败的Singleton implementations:在什么情况下你会不小心得到一个singleton的多个实例?

到目前为止,我想出了:

  • 第一次调用时的竞争条件instance()
  • 并入多个 DLL 或 DLL 和可执行文件
  • 单例的模板定义 - 实际上是单独的类

我还缺少任何其他方式——也许是继承?

0 投票
2 回答
2092 浏览

winforms - 对足够好的 Winforms GUI 设计有什么建议吗?

我正在使用 VB2008 开发一个中型应用程序。为了更好地测试我的应用程序,我遵循 MVP/Supervising Controller 方法。

我的问题是:您对职责分离的建议是什么?到目前为止,我已经提出了一个带有控制器实例和我的类实例的 winform。控件通过 DataBinding 更新

问题是我只是不确定在我的班级中在哪里编写职责(比如说验证、报告创建、查询等)?在一个单独的班级?

您可以指出我的任何干净的 Winform 类设计的小例子吗?