design-patterns相关内容
当涉及到典型的构造函数依赖注入时,我很难理解一个明显的模式问题/限制.例如,假设我有一个 ASP.NET MVC3 控制器,如下所示: 公共类 MyController继承控制器私有只读 mServiceA 作为 IServiceA私有只读 mServiceB 作为 IServiceB私有只读 mServiceC 作为 IServiceCPublic Sub New(serviceA As IS
..
我问自己 @Input/@Output 在父/子组件和使用服务的区别在哪里一旦使用依赖注入@Injectable() 进行初始化.或者除了 Input/Output 只能在 parent-/child-comp 中使用之外还有什么区别. 以下示例以获得更好的可视化效果: 使用@Input:
..
我一直在阅读有关策略模式的一些资料,并有一个问题.我在下面实现了一个非常基本的控制台应用程序来解释我的要求. 我已经读到在实施策略模式时使用“switch"语句是一个危险信号.但是,我似乎无法摆脱在此示例中使用 switch 语句的情况.我错过了什么吗?我能够从 Pencil 中删除逻辑,但是我的 Main 现在有一个 switch 语句.我知道我可以轻松创建一个新的 TriangleDra
..
我正在启动一个 Web 应用程序,客户端在纯 ExtJS 中实现,中间层在 Grails 中实现.应用程序具有基于角色的授权,其中用户可以拥有许多细粒度的角色,如 SOME_FORM_READ、SOME_FORM_UPDATE、SOME_DATA_DELETE、SOME_DATA_READ 等.根据用户的角色,某些 GUI 元素需要禁用或隐藏,而其他则需要处于只读模式. 我在网上进行了一些搜
..
我有一个关于模块设计模式最佳实践的问题.下面的代码是我们的一些组件的编写方式的一个例子(我们使用 ExtJs,但这不应该太重要).我们构建了很多这样的组件,我知道这并不完全符合最佳实践.有任何清理代码的想法吗? Ext.ns("TEAM.COMPONENT");函数 Foo() {//私有变量var privateNumber=0, myButton, privateInternalObject
..
我计划在工作中学习 C# - 一个中等复杂(2000 行代码)的项目.我有兴趣在此过程中学习“设计模式". 谁能推荐一本不需要太多 C# 专业知识并教授设计模式的书?如果这本书不是专门讨论设计模式的(它可以是其中的一章). 解决方案 Head First Design Patterns 一本好书一>.易于理解和遵循,读起来很有趣. GoF 书籍是一切的起点,但我发现它很干,很
..
我已经阅读了几篇将域对象转换为 DTO 的文章和 Stackoverflow 帖子,并在我的代码中进行了尝试.在测试和可扩展性方面,我总是面临一些问题.我知道以下三种将域对象转换为 DTO 的可能解决方案.大部分时间我都在使用 Spring. 方案一:服务层私有方法进行转换 第一个可能的解决方案是在服务层代码中创建一个小的“帮助器"方法,该方法将检索到的数据库对象转换为我的 DTO 对
..
我的输入文件如下所示: [1234]文本文本文本[3456]文本文本文本[7458]文本文本文本 我想删除模式之间的所有行,包括 FROM_HERE 和不包括 TO_HERE. sed '/FROM_HERE/,/TO_HERE/{//p;d;}' 现在我有: sed '/^\['"3456"'\]/,/^\[.*\]//p;d;}' 但是这个命令也不会删除 FROM_HERE 行.对
..
我正在尝试使用 sed 过滤 *.ics 文件.*.ics 文件如下所示: [...]开始:事件用户名:0xfoo总结:fooDTSTART:20131212T090000大通:20131212T100000序列:0DTSTAMP:20131212T100000地点:foo类别:富描述:foo类别:公共结束:VEVENT[...] 我想删除开头的行,例如使用 UID 或 SEQUENCE,但前
..
Silverlight 控件的一个挑战是,当属性绑定到代码时,它们在 Blend 中不再真正可编辑.例如,如果您有一个从数据馈送填充的 ListView,则在 Blend 中编辑该控件时将看不到任何元素. 我听说由 WPF 开发社区发起的 MVVM 模式也有助于保持 Silverlight 控件“可混合".我仍然在思考它,但这里有一些解释: http://www.nikhilk.net
..
使用 ActiveRecord 你可以定义一个这样的类: 班级联系方式{私人字符串_name;公共字符串名称{得到 { 返回 _name;}放{if (value == String.IsNullOrWhiteSpace())throw new ArgumentException(...);别的_name = 值;}}public Boolean Validate() { .../* 检查名称在
..
现在有两件事似乎很流行,我想知道使用这样的东西的利弊是什么:http://codeigniter.com/user_guide/database/active_record.html ? 另一件事是 ORM(例如 Doctrine).使用这些有什么好处? 解决方案 ActiveRecord 是 ORM 中常见的一种模式.Doctrine 是一个使用 ActiveRecord 风格的
..
我如何使用 MVVM Light 让两个视图模型相互通信.我知道如何使用信使类和注册等.这是我的场景 A 设置视图 --->设置视图模型...主页视图 --->一个 MainPage ViewModel 如果设置视图中的某些内容发生变化,它将向设置视图模型发送消息.那么我希望设置视图模型与 MainPage 视图模型就更改的内容进行通信.MainPage ViewModel 然后会告诉 Vie
..
假设我有一个在资源字典中实现为 DataTempate 的视图.我有一个相应的 ViewModel.绑定命令很容易.但是,如果我的 View 包含一个控件(例如 ListBox),并且我需要根据列表上正在更改的项目发布一个应用程序范围的事件(使用 Prism 的事件聚合器)怎么办. 如果 ListBox 支持一个命令,我可以将它绑定到 ViewModel 中的一个命令并发布事件.但是列表框不
..
我刚刚开始了一个新项目,其中表示层将由 WPF 完成,MVVM Light 由 GalaSoft 完成.> 我需要很多视图,但我不清楚如何通过窗口管理导航. 首先,MVVM Light 中提供的用于创建新的“WPF MVVM 视图"的模板创建了一个新的 Window,它不能用于按帧导航(我的意思是,通过放置一个mainView 中的框架并更改要导航的源路径). 对于我使用模板创建的所
..
是否有一种在使用 Optional 对象时执行向上转换的有效方法.这是一个示例代码: A 类{}B 类扩展 A{}B函数(){//做一点事返回新的 B();}可选的func2(){//做一点事返回 Optional.of(new B());}主要的() {A a = func();//向上转换工作正常B b = func();//向上转换工作正常可选的b = func2();//1.
..
我有两个版本的“Initialization-on-demand holder idiom": http://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom http://en.wikipedia.org/wiki/Singleton_pattern#The_solution_of_Bill_Pugh 上面的主要
..
我今天学习了 Android 的 ArrayAdapter,发现有一个通用模式,它使用 ViewHolder 来保存视图的引用,而不是每次都调用 findViewById. 但是它是如何工作的呢?Adapter 通常用于显示一个 View(Group) 的列表,如果我缓存了 View,为什么它们不都引用最旧的一个? 解决方案 如果您想获得有关 ViewHolder 如何工作的最佳解释
..
阅读本文后:http://sourcemaking.com/design_patterns/command 我还是不太明白我们为什么需要这个. 解决方案 这个想法是,如果命令被封装为对象,那么这些命令可以被捕获、存储、排队、重放等. 它还使命令更容易知道如何撤消自己(即执行相反的操作),这样如果一个命令被处理,它就可以存储在一个列表中,然后以相反的顺序“撤消"以恢复命令执行前的
..
我正在尝试用 C# 编写一个简单的角色扮演游戏,以更加熟悉该语言. 我有一个从 CSV 文件加载数据的类,创建一个对象,并将其放入字典中.因为游戏的每个方面都有不同的数据(物品、演员、技能等),所以我将每个方面都设置为一个类,但这需要我为每个方面重新实现一个 Load() 方法.这样做了 5 到 6 次之后,我想知道是否有更好的方法来实现这一点. 基本上,我想要做的是解析包含标题的 C
..