design-patterns相关内容

为什么在单例类中必须有私有构造函数

这是我获取数据库连接的单例类. 我在这里有一个问题:为什么在单例类中必须有一个私有构造函数(因为在我的整个应用程序中,我只调用了一次这个类)并且因为一个类的一个实例可以使用静态方法来实现? 这个私有构造函数可以避免吗,还是必须的? 公共类 ConnPoolFactory {私有静态数据源数据源;私有静态连接连接;私人 ConnPoolFactory() {System.out.pr ..
发布时间:2021-12-22 09:13:35 Java开发

将 IoC 容器引入旧代码

我正在编写一个新的 .NET 库供我公司内部使用,它将通过依赖注入使用 IoC.当然,如果我们使用 IoC 容器来解析实例,这个库会更容易使用. 但是,将调用此库的代码当前不使用任何类型的依赖注入,并且重构遗留代码以使用 DI 超出了我的项目的范围.那么,在此遗留代码中开始使用容器以从我的新库中获取实例的最佳方式是什么? 如果可能的话,我想避免在我选择的任何 IoC 容器的硬引用中乱扔 ..
发布时间:2021-12-22 09:13:28 C#/.NET

Java 的“朋友"等价物?

这里在架构上有点问题. 在 C++ 中,我们有“朋友"的概念,这样的朋友类可以访问私有成员. 所以,我正在开发一个 Java 应用程序并尝试遵循 MVC 架构.我有一个控制器类,用于管理“map_objects"之间的图形连接.我想通过使用此控制器类隐藏 DTO 'map_objects' 中实际设置这些连接的函数. (即,即使控制器类实现了设置连接所需的功能,“用户"仍然可以直 ..
发布时间:2021-12-22 09:13:21 Java开发

单一职责原则在 OOP 中是否有效?

我正在努力理解如何使单一职责原则与 OOP 一起工作. 如果我们要遵循原则进行发球,那么我们不是留下了许多类,其中许多类可能每个只有一个方法吗? 如果我们不完全遵循原则,那么原则的意义何在? 解决方案 我喜欢这样表述单一职责原则:“你写的每一件事——每一个模块、类、接口或方法,都应该有一项工作.它应该完成全部工作,并且只完成那项工作. 请注意,您编写的这些东西有些很大(模 ..

在 Java 中实现类适配器模式

在阅读 Head First Design Patterns 中的类适配器模式时,我来到了穿过这句话: 类适配器...因为你需要多重继承来实现它,这在Java中是不可能的 为了实验,我尝试了以下方法: interface MyNeededInterface{public void operationOne(MyNeededInterface other);公共 MyNeededInt ..
发布时间:2021-12-22 09:13:05 Java开发

MVVM 中的 ViewModel 应该引用视图吗?

在 MVVM (Model-View-ViewModel) 模式中,ViewModel 应该引用视图.我认为不应该.但是下面的场景应该如何处理呢?我有一个视图,它有一个选项卡控件作为主容器,这个视图的视图模型实现了一个命令来向选项卡控件添加一个新选项卡.简单的方法是允许视图模型引用视图,然后在命令实现中以编程方式将新选项卡添加到视图中的选项卡控件.这似乎是错误的.我应该以某种方式将 tabcont ..
发布时间:2021-12-22 09:12:59 其他开发

如何使用异步等待模式初始化对象

我试图在我的服务类中遵循 RAII 模式,这意味着当一个对象被构造时,它被完全初始化.但是,我在使用异步 API 时遇到了困难.有问题的类的结构如下 class ServiceProvider : IServiceProvider//只能通过这个接口使用{公共 int 重要值 { 获取;放;}公共事件 EventHandler ImportantValueUpdated;公共服务提供者(IDep ..
发布时间:2021-12-22 09:12:39 C#/.NET

如何在模板实例化时故意导致编译时错误

有时在使用 C++ 模板进行编码时,您希望防止用户实例化特定的专业化或专业化集,因为结果将是无意义的.因此,您可以定义(特定的或部分的)特化,其定义如果被实例化,将导致编译器错误.目标是,如果用户“误用"模板,在头文件中解释不该做什么的注释旁边导致编译器错误,而不是让编译器自己提出一些令人困惑的错误消息设备,或者可能允许编译有问题的代码. 示例: template struct MyCla ..
发布时间:2021-12-22 09:12:35 C/C++开发

什么时候在 Java 中使用享元字符串有益?

我了解 java 字符串实习的基本思想,但我试图弄清楚它发生在哪些情况下,并且我需要自己做蝇量级. 有点相关: Java 字符串:“String s = new String("silly“);" Java 中 String 享元实现的最佳替代方案 从未得到答复 他们一起告诉我 String s = "foo" 是好的,而 String s = new String("foo" ..
发布时间:2021-12-22 09:12:27 Java开发

JavaScript 命名空间

我想为我的应用程序创建一个全局命名空间,并且在该命名空间中我想要其他命名空间: 例如 Dashboard.Ajax.Post()Dashboard.RetrieveContent.RefreshSalespersonPerformanceContent(); 我还想将它们放在单独的文件中: Ajax.js RetrieveContent.js 但是我已经尝试使用 this ..
发布时间:2021-12-22 09:12:12 前端开发

Javascript 库中的 mixin() 和 extend() 有什么区别

我正在浏览各种库,看到很多扩展()弹出,但我也看到 mixin()出现.YUI 既有 mixin 也有扩展. 这两个概念有什么区别?我什么时候会在 mixin 和扩展对象之间做出决定? 谢谢,马特 解决方案 Mixins 不适用于 instanceof 但 extends 可以.Mixin 允许多重继承,但通过伪造它,而不是通过正确链接原型. 我将展示一个 Ext-JS ..
发布时间:2021-12-22 09:11:52 前端开发

备忘录模式是如何在 C#4 中实现的?

Memento Pattern 本身看起来非常简单.我正在考虑实现与 wikipedia 示例相同的内容,但在此之前,是否有任何 C# 语言功能使其更易于实现或使用? 解决方案 一个明显的特性是泛型,实现一个泛型备忘录将允许你将它用于你想要的任何对象. 您将看到的许多示例都将使用字符串(包括当前对此问题的答复中的所有字符串)作为状态,这是一个问题,因为它是 .NET 中为数不多的不可 ..
发布时间:2021-12-22 09:11:44 C#/.NET

用于包装异步 JavaScript 函数以使其同步的模式

我正在使用 JavaScript API,其中大部分功能都是异步的.API 是 WebKit JavaScript 数据库 API这是对操作 SQLite3 数据库的功能子集的绑定.我理解使事情异步而不是阻塞并提供响应式用户界面的设计决策.在我的情况下,我知道我对异步 API 调用的使用将执行得很快.鉴于这种情况,我想为我的开发人员提供一个更清晰、更易于使用的包装器 API,它强制进行同步调用. ..
发布时间:2021-12-22 09:11:37 移动开发

懒惰的依赖注入

我有一个项目,其中 Ninject 用作​​ IoC 容器.我担心的是很多类都有这样的构造函数: [注入]公共家庭控制器(UserManager userManager, RoleManager roleManager, BlahblahManager blahblahManager) {_userManager = 用户管理器;_roleManager = 角色管理器;_blahblahMan ..
发布时间:2021-12-22 09:11:30 C#/.NET

用于在整个应用程序中共享配置的 Python 模式

我有一个应用程序,其中包含一个包含多个模块的基本应用程序.基础应用程序将参数文件读取到配置哈希中,我想在我的所有模块中共享它. 目前,我正在将一个“父"对象传递给模块,然后这些模块正在执行诸如 self.parent.config 之类的操作来获取配置. 但是,由于模块层次结构有多个级别,我发现自己在做诸如 self.parent.parent.config 之类的事情,这开始看起来很 ..
发布时间:2021-12-22 09:11:21 Python

使用接口的原因是什么(Java EE 或 Spring 和 JPA)

大多数 J2EE(Spring 和 JPA)类都设计有接口.除了继承,还有什么技术原因吗?像动态代理或 AOP,我需要更多关于这个的技术细节 前 公共接口 UserDAO {无效删除();无效更新();无效保存();列表得到();}公共类 UserDAOImpl 实现 UserDAO {公共无效删除(){}公共无效更新(){}public void save(){}公共列表得到(){}} ..
发布时间:2021-12-22 09:11:08 其他开发

为什么 SOA 设计中的 CRUD 操作如此糟糕?

我刚刚读完了 John Evdemon 撰写的关于 MSDN 的文章.他抨击 CRUD 接口并将其称为反模式. 虽然我同意让任何有状态的东西都很难并且 Current 和 MoveNext 是坏主意,但我不同意像 Create Read Update 和 Delete 那样的 CRUD 是坏的.如果我有汽车服务并且我想让客户能够做基本的事情,例如在创建汽车、获取汽车详细信息、更新汽车详细信息 ..
发布时间:2021-12-22 09:10:53 其他开发

如何做一个 PHP 嵌套类或嵌套方法?

我如何在 PHP 中执行此操作 $myDBClass->users()->limit(5);//输出你限制用户为5$myDBClass->comments()->limit(3);//输出你限制的评论为3 我的意思是嵌套方法或嵌套类(我不知道!)所以当我作为用户的孩子调用 limit 方法时,它会知道我是从“用户"方法 - 或类 - 调用它时,当我从评论中调用 limit 方法 - 或类! - ..
发布时间:2021-12-22 09:10:45 PHP