design-patterns相关内容

REST API 登录模式

我正在创建一个 REST api,密切关注 apigee 的建议,使用名词而不是动词,将 api 版本烘焙到 url 中,每个集合有两个 api 路径,GET POST PUT DELETE 用法等. 我正在研究登录系统,但不确定登录用户的正确 REST 方式.我目前不致力于安全性,只是登录模式或流程.(稍后我们将添加 2 步 oAuth,使用 HMAC 等) 可能的选择 对类似 ..
发布时间:2021-12-08 23:07:52 其他开发

在哪里对实体运行重复检查

我正在寻找关于在 MVC 应用程序中使用实体框架代码优先时放置验证逻辑的“最佳"位置的建议,例如实体的重复检查. 举个简单的例子: 公共类JobRole{公共 int Id { 获取;放;}公共字符串名称 { 获取;放;}} 规则是“名称"字段必须是唯一的. 当我添加一个新的 JobRole 时,很容易在 Job Role Repository 中检查 Name 不存在. 但 ..
发布时间:2021-12-08 20:31:11 C#/.NET

WinForms 中的模型-视图-展示器

我第一次尝试使用 WinForms 实现 MVP 方法. 我正在尝试了解每一层的功能. 在我的程序中,我有一个 GUI 按钮,单击该按钮会打开一个 openfiledialog 窗口. 所以使用MVP,GUI处理按钮点击事件,然后调用presenter.openfile(); 在presenter.openfile()中,是否应该将该文件的打开委托给模型层,或者因为没有数据 ..
发布时间:2021-12-08 13:46:53 C#/.NET

Windows 窗体的 UI 设计模式(如 WPF 的 MVVM)

MVVM 最常与 WPF 一起使用,因为它非常适合它.但是 Windows 窗体呢?对于 Windows 窗体,是否也有这样的既定且常用的方法/设计模式?一个可以很好地与 Windows Forms 配合使用的吗?有没有一本书或一篇文章很好地描述了这一点?也许基于 MVP 或 MVC? 解决方案 我尝试过 MVP,它似乎对 Windows 窗体也能很好地工作.本书有一个带有 MVP 模式的 ..
发布时间:2021-12-08 13:31:25 其他开发

JavaScript 中只能调用一次的函数

我需要创建一个只能执行一次的函数,在第一次之后的每次都不会执行.我从 C++ 和 Java 知道可以完成这项工作的静态变量,但我想知道是否有更优雅的方法来做到这一点? 解决方案 如果通过“不会被执行"你的意思是“多次调用什么都不做",你可以创建一个闭包: var something = (function() {变量执行 = 假;返回函数(){如果(!执行){执行 = 真;//做点什么} ..
发布时间:2021-12-07 22:52:31 前端开发

在 JavaScript 中实现单例的最简单/最干净的方法

在 JavaScript 中实现单例模式的最简单/最干净的方法是什么? 解决方案 在 ES6 正确的做法是: class MyClass {构造函数(){如果(MyClass._instance){throw new Error("单例类不能被多次实例化.")}MyClass._instance = this;//... 其余的构造函数代码在此之后}}var instanceOne ..
发布时间:2021-12-07 22:46:23 前端开发

过早优化的实用规则

“过早优化"一词似乎是当今的流行词.出于某种原因,iphone 程序员尤其似乎认为避免过早优化是一个积极的目标,而不是简单地避免分心的自然结果.问题是,这个词开始越来越多地用于完全不合适的情况. 例如,我看到越来越多的人说不要担心算法的复杂性,因为那是过早的优化(例如 帮助跨两个属性对 NSArray 进行排序(使用 NSSortDescriptor?)).坦率地说,我认为这只是懒惰,对纪律 ..
发布时间:2021-12-06 20:11:11 移动开发

优雅的在列表中查找子列表

给定一个包含噪声包围的已知模式的列表,是否有一种优雅的方法来获取与该模式相同的所有项目.请参阅下面的我的粗代码. list_with_noise = [7,2,1,2,3,4,2,1,2,3,4,9,9,1,2,3,4,7,4,3,1,2,3,5]known_pattern = [1,2,3,4]资源 = []对于 list_with_noise 中的 i:对于 known_pattern 中的 ..
发布时间:2021-12-06 14:06:06 Python

在 MVVM 模型中,模型应该实现 INotifyPropertyChanged 接口吗?

我对 MVVM 模式中的 View 和 ViewModel 有了清晰的认识.我计划在我的应用程序中实现 MVVM 模式.我正面临有关模型的问题.我有 .xml 文件被解析,信息显示在视图中. 我只需要第一次收到有关模型更改的通知.从以后需要通知我. 那么如何实现模型呢? 我是否也应该在模型类中实现 INotifyPropertyChanged 接口?(我读到模型不应该实现 INo ..
发布时间:2021-12-05 16:58:57 C#/.NET

ASP.NET MVC - 控制器中是否应该存在业务逻辑?

Derik Whitaker 发布了一个 文章 几天前达到了我一直很好奇的一点大约有一段时间了:业务逻辑应该存在于控制器中吗? 到目前为止,我看到的所有 ASP.NET MVC 演示都将存储库访问和业务逻辑放在控制器中.有些人甚至还会在那里进行验证.这会导致相当大的、臃肿的控制器.这真的是使用MVC框架的方式吗?看来这最终会导致大量重复的代码和逻辑分布在不同的控制器上. 解决方案 业 ..
发布时间:2021-12-03 15:39:46 其他开发

在哪里放置 AutoMapper.CreateMaps?

我在 ASP.NET MVC 应用程序中使用 AutoMapper.有人告诉我我应该将 AutoMapper.CreateMap 移到其他地方,因为它们有很多开销.我不太确定如何设计我的应用程序以将这些调用放在 1 个地方. 我有一个网络层、服务层和一个数据层.每一个都有自己的项目.我使用 Ninject 来 DI 一切.我将在 Web 层和服务层中使用 AutoMapper. 那么您 ..
发布时间:2021-12-03 15:39:20 其他开发

对ajax请求进行排序

我发现有时需要迭代一些集合并对每个元素进行 ajax 调用.我希望每次调用都在移动到下一个元素之前返回,这样我就不会向服务器发送请求 - 这通常会导致其他问题.而且我不想将 async 设置为 false 并冻结浏览器. 通常这涉及设置某种迭代器上下文,我在每次成功回调时都会通过这些迭代器上下文.我认为一定有更简洁的方法吗? 有没有人有一个巧妙的设计模式,如何巧妙地处理一个集合,为每个 ..
发布时间:2021-12-03 11:49:25 前端开发

我的 Objective-C 单例应该是什么样的?

我的单例访问器方法通常是以下的一些变体: static MyClass *gInstance = NULL;+ (MyClass *) 实例{@同步(自我){如果(gInstance == NULL)gInstance = [[self alloc] init];}返回(gInstance);} 我可以做些什么来改善这一点? 解决方案 另一种选择是使用 +(void)initializ ..
发布时间:2021-12-02 17:32:46 移动开发

Swift 中的委托示例

我一直在努力学习如何使用协议进行委托.我什么都懂,但除了使用表格视图和可能的滚动视图之外,我想不出什么时候使用委托. 一般来说,什么时候使用委托? 解决方案 什么是委托? 首先,您应该知道委托模式并不是iOS世界独有的: 在软件工程中,委托模式是一种设计模式面向对象的编程,允许对象组合实现与继承相同的代码重用. 但是在 iOS 世界中使用 委托 是如此常见,我假设您 ..
发布时间:2021-12-02 15:39:00 移动开发

为什么要创建“隐式展开的选项",因为这意味着您知道有一个值?

为什么要创建“隐式解包可选"而不是仅创建常规变量或常量?如果您知道它可以成功解包,那么为什么首先要创建一个可选项?例如,这是为什么: let someString: String!= "这是字符串" 将比: let someString: String = "这是字符串" 如果“可选项表明常量或变量被允许具有‘无值’",但“有时从程序的结构中可以清楚地看出,在第一次设置该值后,可选项将始终 ..
发布时间:2021-12-02 15:23:10 移动开发

使用 MVVM 处理 WPF 中的对话框

在 WPF 的 MVVM 模式中,处理对话框是更复杂的操作之一.由于您的视图模型对视图一无所知,因此对话通信可能很有趣.我可以公开一个 ICommand,当视图调用它时,会出现一个对话框. 有人知道处理对话框结果的好方法吗?我说的是 Windows 对话框,例如 MessageBox. 我们这样做的方法之一是在视图模型上设置一个事件,当需要对话框时,视图将订阅该事件. public ..
发布时间:2021-12-02 13:59:17 C#/.NET

复合主键与唯一对象 ID 字段

我继承了一个基于复合键比使用唯一对象 ID 字段更理想的想法构建的数据库,并且在构建数据库时,单个唯一 ID 应该永远 用作主键.因为我正在为这个数据库构建一个 Rails 前端,所以我在让它符合 Rails 约定时遇到了困难(尽管可以使用自定义视图和一些额外的 gem 来处理复合键). 这种特定模式设计背后的推理与数据库如何以低效的方式处理 ID 字段以及在构建索引时树排序存在缺陷有关.这 ..
发布时间:2021-12-02 12:18:00 其他开发

同步客户端-服务器数据库

我正在寻找一些通用策略,用于将中央服务器上的数据与不总是在线的客户端应用程序同步. 在我的特殊情况下,我有一个带有 sqlite 数据库的 android 手机应用程序和一个带有 MySQL 数据库的 PHP Web 应用程序. 用户将能够在电话应用程序和网络应用程序上添加和编辑信息.即使手机无法立即与服务器通信,我也需要确保在一个地方所做的更改在任何地方都能反映出来. 我不关心 ..
发布时间:2021-12-01 19:56:17 其他开发

实体属性值数据库与严格的关系模型电子商务

可以肯定地说,EAV/CR 数据库模型不好.也就是说, 问题:应该使用什么数据库模型、技术或模式来处理描述可在运行时更改的电子商务产品的属性“类"? 在一个好的电子商务数据库中,您将存储选项类别(例如电视分辨率,然后为每台电视设置一个分辨率,但下一个产品可能不是电视,也没有“电视分辨率").您如何存储它们、高效搜索并允许您的用户使用描述其产品的可变字段来设置产品类型?如果搜索引擎发现客 ..
发布时间:2021-12-01 19:39:53 其他开发

单例:应该如何使用

编辑:从另一个问题我提供了一个答案,其中包含许多关于单身人士的问题/答案的链接:有关单身人士的更多信息,请访问: 所以我已经阅读了主题单身人士:好的设计还是拐杖? 争论仍在继续. 我认为单例是一种设计模式(好的和坏的). Singleton 的问题不在于模式,而在于用户(对不起大家).每个人和他们的父亲都认为他们可以正确地实施一个(从我所做的许多采访来看,大多数人不能).也因为 ..
发布时间:2021-12-01 15:28:14 C/C++开发