design-patterns相关内容

存储库是否应该实现 IQueryable?

我正在考虑两个 IRepository 接口之一,一个是 IQueryable 的后代,另一个包含 IQueryable. 像这样: 公共接口 IRepository:IQueryable{T Save(T实体);无效删除(T实体);} 或者这个: 公共接口 IRepository{T Save(T实体);无效删除(T实体);IQueryable询问();} LINQ 用法为: 来 ..
发布时间:2021-12-22 09:10:25 C#/.NET

Javascript 立即调用函数模式

你怎么称呼这些模式?它们之间有什么区别?你什么时候用?还有其他类似的模式吗? (function() {控制台日志(这个);//窗户})();(函数 x() {控制台日志(这个);//窗户})();var y = (function() {控制台日志(这个);//窗户})();var z = 函数(){控制台日志(这个);//窗户}(); 编辑:通过命名最后两种情况下的函数,我发现了两种看似多 ..
发布时间:2021-12-22 09:10:17 前端开发

MVP 和 UserControls 和调用

我在尝试了解一些 MVP 的东西时很开心,因为它与用户控件有关.我正在使用 .NET WinForms(或接近它的东西)和监督控制器模式(好吧,我想我是:). 用户控件本身是 MVP 应用程序的一部分(它的视图和关联的演示者等).Presenter 总是先启动,然后启动 Model(s),然后是 View(s).View 构建其 UI,其中一部分将用于 NEW UC,即 View. 现 ..
发布时间:2021-12-22 09:10:10 其他开发

委托模式的目的是什么?

我正在查看源代码 SensorManager在Android中发现当你注册一个SensorEventListener时SensorManager传递控制ListenerDelegate 的监听器. 我只是举个例子.我阅读了关于委托编程的维基百科文章,但我仍然不确定它的目的.为什么要使用“委托"?它如何帮助程序的控制流?使用(或不使用)一个的缺点是什么?与听众一起使用是否最实用? 编辑: ..
发布时间:2021-12-22 09:10:06 Java开发

使用存储库模式来支持多个提供者

好吧,不确定这是否是正确的标题,但基本上我在 MVC 应用程序中使用存储库时遇到了很多问题,您可以替换一组存储库,实现不同的数据存储技术,用于另一个. 例如,假设我想为我的应用程序使用实体框架.但是,我也希望在硬编码列表中实现一组测试数据.我想要一组接口(IUserRepository、IProductRepository 等——我们暂时不讨论更通用的 IRepository)这两种方 ..

多态对象层次结构的构建器模式:Java 可能吗?

我有一个接口层次结构,Child 实现了 Parent.我想使用不可变对象,所以我想设计 Builder 类来方便地构造这些对象.但是,我有很多Child接口,我不想在每种类型的子构建器中重复构建Parent的代码. 因此,假设以下定义: 公共接口父{public Long getParentProperty();}公共接口 Child1 扩展父 {公共整数 getChild1Proper ..
发布时间:2021-12-22 09:09:55 Java开发

AsyncTask Android - 设计模式和返回值

我正在编写一个应用程序来验证外部网络服务器上的登录凭据 - 所以我有一个创建登录屏幕的基本问题,当提交时,它会在后台向服务器发送 HTTP 请求,而不会导致 UI 挂起- 同时向用户提供 ProgressDialog. 我的问题在于,我想编写一个扩展 AsyncTask 的通用 HTTP 请求类,因此当我调用 .execute() 时,我将传递可能包含“post"之类的字符串参数,当 doI ..
发布时间:2021-12-22 09:09:48 移动开发

设计模式和设计原则有什么区别?

我是 Ruby on Rails 的新手,我浏览了这些文章. Ruby 中的设计模式:观察者、单例莉>Ruby 中的设计模式 但我无法理解设计模式和设计原则之间的实际区别.有人可以解释一下区别吗? 解决方案 设计原则: 设计原则是我们在设计软件时应该遵循的核心抽象原则.请记住,它们不是具体的——而是抽象的.只要我们在允许的条件下,它们就可以以任何语言、在任何平台上应用,无 ..
发布时间:2021-12-22 09:09:38 其他开发

用于处理私有函数的 jQuery 插件设计模式(常见做法?)

我开发 jQuery 插件已经有一段时间了,我想我现在已经知道如何设计一个很好的插件了.不过,有一个问题一直困扰着我,那就是如何以一种强大而优雅的方式处理私有函数. 我的插件通常看起来像这样: (function($) {$.fn.myplugin = function(...) {...//一些共享功能,例如:this.css('背景色', '绿色');...};$.fn.myplugi ..
发布时间:2021-12-22 09:09:28 前端开发

爪哇.实现监听器的正确模式

我经常遇到这样一种情况,即给定的对象需要有许多侦听器.例如,我可能有 class Elephant {public void addListener( ElephantListener 监听器) { ... }} 但是我会有很多这样的情况.也就是说,我还将有一个 Tiger 对象,该对象将具有 TigerListeners.现在,TigerListeners 和 ElephantListene ..
发布时间:2021-12-22 09:09:22 Java开发

C++函数中局部类的使用

我在 C++ 函数中看到了一些内部结构的用法. 有一个通用接口IBase.这是代码草案. class IBase{虚拟方法()=0;}向量基本列表; 然后一个函数根据那个 IBase 定义了一个内部类,然后将内部类对象推入 baseList. void func(){结构对象:公共 IBase{虚方法(){//func中对象的方法}}IBase* base = new ..
发布时间:2021-12-22 09:09:15 C/C++开发

Python 中等效的构建器模式

在 Java 中,您可以使用 构建器模式 提供一种更具可读性的方法来实例化具有许多参数的类.在构建器模式中,使用设置命名属性的方法构造一个配置对象,然后使用它来构造另一个对象. Python 中的等价物是什么?是模仿相同实现的最佳方式吗? 解决方案 设计模式通常可以用内置的语言功能替换. 您的用例 您说“我想要一个更具可读性的“手段";实例化一个具有许多参数的类.".在 ..
发布时间:2021-12-22 09:09:09 Python

装饰模式与子类

我可以通过添加子类来解决添加功能的问题,那我为什么要使用装饰器模式?装饰器模式的真正优势是什么? 解决方案 来自 维基百科的装饰模式 装饰者模式可用于使其有可能扩展(装饰)某个对象的功能在运行时. 装饰器模式的全部意义在于动态添加额外的行为/功能,这在设计时当然是不可能的. 来自同一篇文章: 装饰者模式是一个子类化的替代方法.子类在编译时添加行为时间,而变化影响到所 ..
发布时间:2021-12-22 09:09:05 其他开发

命令模式:如何将参数传递给命令?

我的问题与命令模式有关,我们有以下抽象(C# 代码): 公共接口ICommand{无效执行();} 让我们采用一个简单的具体命令,该命令旨在从我们的应用程序中删除一个实体.例如,一个 Person 实例. 我将有一个 DeletePersonCommand,它实现了 ICommand.该命令需要将Person作为参数删除,以便在调用Execute方法时删除. 管理参数化命令的最佳方 ..
发布时间:2021-12-22 09:09:02 C#/.NET

MVVM 把数据访问层放在哪里?

我正在研究 WPF 的 MVVM 设计模式.但不确定将数据访问代码放在哪里? 在我看过的一些示例中,数据访问是直接在 ViewModel 中执行的.在 ViewModel 中放入 linq to sql 之类的东西似乎很奇怪?其他例子有一个单独的数据访问项目,这看起来更像吗? 这是通用的方法吗?我觉得我在这里错过了什么! 谢谢 解决方案 我会再添加一层,本质上你想要的是一 ..
发布时间:2021-12-22 09:08:56 C#/.NET

“重试"的设计模式失败的逻辑?

我正在编写一些重新连接逻辑,以定期尝试与发生故障的远程端点建立连接.本质上,代码如下所示: public void createdConnection() {尝试 {this.connection = newConnection();} catch (IOException e) {//连接失败,再试一次.尝试 { Thread.sleep(1000);} catch (InterruptedE ..
发布时间:2021-12-22 09:08:49 Java开发

解释“领导者/追随者"图案

我似乎找不到对“领导者/追随者"模式的良好且易于理解的解释.所有的解释都完全没有意义,就像 1. 谁能向机制解释这种模式是如何工作的,以及它为什么以及如何比更传统的异步 IO 模型提高性能?示例和图表链接也值得赞赏. 解决方案 您可能已经读过,该模式由 4 个组件组成:ThreadPool、HandleSet、Handle、ConcreteEventHandler(实现 EventH ..
发布时间:2021-12-22 09:08:39 其他开发

如何在依赖注入中使用 log4net

我正在尝试通过依赖注入框架找出 log4net 的正确模式和用法. Log4Net 使用 ILog 接口但需要我调用 LogManager.GetLogger(Reflection.MethodBase.GetCurrentMethod().DeclaringType) 在我需要记录信息的每个类或方法中.这似乎违反了 IoC 原则,并使我不得不使用 Log4Net. 我应该以某种方 ..
发布时间:2021-12-22 09:08:31 其他开发

多个构造函数的 JavaScript 模式

我的实例需要不同的构造函数.常见的模式是什么? 解决方案 你如何找到这个方案? function Foobar(foobar) {this.foobar = foobar;}Foobar.prototype = {foob​​ar: 空};Foobar.fromComponents = function(foo, bar) {var foobar = foo + bar;返回新的 Foo ..
发布时间:2021-12-22 09:08:25 前端开发

在 C# 3 中编写流畅接口的技巧

我正在寻找有关 C# 中流畅界面的一些好技巧.我自己只是在学习它,但很想听听我正在阅读的文章之外的其他人的想法.特别是我追求: 什么时候流利太多了? 有流畅的模式吗? C# 中什么使流畅的接口更加流畅(例如扩展方法) 复杂的流畅界面仍然是流畅的界面吗? 重构以获得流畅的界面或重构现有的流畅界面 有没有您曾经合作过或可以推荐的好例子? 如果您可以发布一个提示或想法,或者每个帖子 ..
发布时间:2021-12-22 09:08:16 C#/.NET