Questions tagged «design-patterns»

设计模式是解决软件设计中常见问题的通用可重用解决方案。当您对设计模式的实现有疑问时,请使用此标签来提问。请不要在有关文本模式匹配的问题上使用此标签。当在实现上遇到重磅问题时使用此标记-标记实现所使用的代码语言。

10
在哪里放置AutoMapper.CreateMaps?
我正在使用 AutoMapper在ASP.NET MVC应用程序中使用。有人告诉我,我应该将AutoMapper.CreateMap其他位置移到其他地方,因为它们的开销很大。我不太确定如何设计我的应用程序以将这些调用放在一个地方。 我有一个Web层,服务层和一个数据层。每个项目都有自己的项目。我用Ninject一切都去DI。我将AutoMapper在Web和服务层中利用。 那么,您对AutoMapper“ CreateMap”的设置是什么?你放在哪里?你怎么称呼它?

2
Jon Skeet对Singleton的澄清
public sealed class Singleton { Singleton() {} public static Singleton Instance { get { return Nested.instance; } } class Nested { // Explicit static constructor to tell C# compiler // not to mark type as beforefieldinit static Nested() {} internal static readonly Singleton instance = new Singleton(); } } 我希望在当前的C#应用​​程序中实现Jon …

5
如何解释对5岁孩子的依赖注射?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 有什么好的方法解释依赖项注入? 我在Google上找到了几本教程,但是都没有一个假定读者只是Java初学者。您将如何向新手解释?

22
为什么C#不提供C ++样式的“ friend”关键字?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 3年前关闭。 改善这个问题 在C ++朋友关键字允许class A指定class B作为其朋友。这允许Class B访问的private/ protected成员class A。 我从来没有读过任何关于为什么C#(和VB.NET)不包含此内容的信息。对于这个较早的StackOverflow问题的大多数答案似乎都是在说它是C ++的有用组成部分,并且有充分的理由使用它。以我的经验,我必须同意。 在我看来,另一个问题确实是在问如何friend在C#应用程序中执行类似的操作。尽管答案通常围绕嵌套类,但似乎并不像使用friend关键字那样优雅。 原始的《设计模式》一书在整个示例中都定期使用它。 因此,总而言之,为什么friendC#缺少它?在C#中模拟它的“最佳实践”方法是什么? (顺便说一句,internal关键字不是同一回事,它允许整个程序集中的所有类访问internal成员,而friend允许您为某个类提供对另一个类的完全访问权限)
208 c#  c++  design-patterns  oop  friend 


4
就编码C#而言,MVC,MVP和MVVM设计模式之间有何区别?
如果我们使用短语“ MVC,MVP和MVVM设计模式之间的区别是什么”来搜索Google,那么我们可能会获得很少的URL,这些URL会从理论上像MVC MVP和MVVM设计模式之间的区别进行讨论: 最有价值球员 在无法通过数据上下文进行绑定的情况下使用。Windows窗体就是一个很好的例子。为了将视图与模型分开,需要演示者。由于视图不能直接绑定到演示者,因此必须通过接口(IView)将信息传递给视图。 MVVM 在可以通过数据上下文进行绑定的情况下使用。为什么?删除了每个视图的各种IView接口,这意味着需要维护的代码更少。可能使用MVVM的一些示例包括使用Knockout的WPF和javascript项目。 MVC 在视图和程序其余部分之间的连接始终不可用(并且您无法有效地使用MVVM或MVP)的情况下使用。这清楚地描述了Web API与发送到客户端浏览器的数据分离的情况。微软的ASP.NET MVC是管理此类情况的绝佳工具,并提供了非常清晰的MVC框架 但是我还没有找到一篇文章在理论上与示例代码一起讨论差异。 如果我得到一篇讨论这三种设计模式(MVC,MVP和MVVM)与代码之间差异的文章,那将是非常不错的。 我想了解这3种设计模式(MVC,MVP和MVVM)实现的3个类似CRUD应用程序的源代码。这样我就可以遍历代码并了解如何为这三种设计模式(MVC,MVP和MVVM)编写代码。 因此,如果存在任何讨论这三种设计模式(MVC,MVP和MVVM)的代码外观不同的文章,那么请重定向至该文章。

10
我们什么时候应该使用Observer和Observable?
面试官问我: 什么是Observer,什么Observable时候应该使用它们? 我并不了解这些术语,因此当我回到家并开始使用Google Observer和Google进行搜索时Observable,发现了来自不同资源的一些观点: 1)Observable是一个类,Observer是一个接口。 2)Observable该类维护一个Observers 列表。 3)当一个Observable对象被更新时,它调用其update()每个Observers 的方法来通知它已被更改。 我发现这个例子: import java.util.Observable; import java.util.Observer; class MessageBoard extends Observable { public void changeMessage(String message) { setChanged(); notifyObservers(message); } } class Student implements Observer { @Override public void update(Observable o, Object arg) { System.out.println("Message board changed: " + arg); } } public …

24
我如何知道何时创建界面?
在开发学习中,我觉得必须学习更多有关接口的知识。 我经常阅读有关它们的信息,但似乎我无法掌握它们。 我已经阅读了以下示例:Animal基类,带有IAnimal接口,用于处理“ Walk”,“ Run”,“ GetLegs”等内容-但我从未从事过某些工作,并且感觉像“嘿,我应该使用接口这里!” 我想念什么?为什么我很难理解这个概念!我可能从未意识到具体的需求,这一事实使我感到震惊-主要是由于缺乏理解它们的方面!这让我觉得自己在成为一名开发人员方面缺少了什么!如果有人有这样的经历并取得了突破,我将不胜感激如何理解这一概念的一些技巧。谢谢。

13
什么是反模式?
我正在研究模式和反模式。我对模式有一个清晰的主意,但我没有反模式。网络和维基百科的定义让我非常困惑。 有人可以简单地向我解释什么是反模式吗?什么目的?他们在做什么?是好事还是坏事?


7
设计模式:工厂vs工厂方法vs抽象工厂
我正在从网站上阅读设计模式 我在这里读到了有关Factory,Factory方法和Abstract工厂的信息,但是它们是如此混乱,在定义上不清楚。根据定义 工厂-创建对象而不将实例化逻辑暴露给客户端,并通过通用接口引用新创建的对象。是Factory Method的简化版本 工厂方法-定义用于创建对象的接口,但让子类决定要实例化的类,并通过通用接口引用新创建的对象。 抽象工厂-提供用于创建相关对象族的接口,而无需显式指定其类。 我还查看了有关抽象工厂与工厂方法的其他stackoverflow线程,但是在那里绘制的UML图使我的理解更糟。 谁能告诉我 这三种模式有何不同? 什么时候使用? 还有可能的话,是否有与这些模式相关的Java示例?

10
MVC中的业务逻辑
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 7天前关闭。 改善这个问题 我有两个问题: Q1。MVC模式中“业务逻辑”到底在哪里?我对模型和控制器感到困惑。 Q2。“业务逻辑”与“业务规则”相同吗?如果没有,有什么区别? 如果您可以举一个小例子来解释,那将是很好的。

3
REST API登录模式
我正在创建一个REST api,紧紧遵循apigee建议,使用名词而不是动词,url中烘焙的api版本,每个集合两个api路径,GET POST PUT DELETE用法等。 我正在使用登录系统,但是不确定用于登录用户的正确REST方式。我目前不在安全性方面,只是在登录模式或流程方面。(稍后,我们将添加2步oAuth,以及HMAC等) 可能的选择 张贴到类似的东西 https://api...com/v1/login.json 放置到类似 https://api...com/v1/users.json 我还没有... 用于登录用户的正确REST风格是什么?

8
Spring AOP与AspectJ
我的印象是,Spring AOP最适合用于特定于应用程序的任务,例如安全性,日志记录,事务等,因为它使用自定义Java5注释作为框架。但是,AspectJ似乎是更友好的设计模式。 谁能强调在Spring应用程序中使用Spring AOP和AspectJ的利弊吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.