软件设计

多线程的设计模式

多任务似乎是一场灾难,大型项目由于共享突变而崩溃,我会说共享资源被多个网页访问。调试和跟踪bug的起源以及造成的原因变得非常困难。它让我想起来,有没有任何设计模式,可以在设计多线程程序时使用。 我非常感谢您对此的意见和评论,如果有人可以呈现好的 解决方案 @WYSIWYG链接似乎是有很多有用的模式,但我可以给你一些指导方针。多线程程序的主要问题是更新操作或并发修改,而一些较不发生的问 ..

如何添加仅缓存ADT的内容?

通常,我需要向只能记录一些冗余信息的ADT添加字段。但是我并没有完全弄清楚如何做到这一点非常有效率。 显示问题的最好办法就是举个例子。假设我们正在使用无类型的lambda术语: 键入VSym = String data Lambda = Var VSym | App Lambda Lambda | Abs VSym Lambda 不时,我们需要计算一个 ..

如何排除vimgrep中的文件模式?

在vim中,我经常使用vimgrep进行搜索。我有如下的映射: map s:execute“noautocmd vimgrep / \\< 。展开(“”)。 “\\> / gj ** / *。*” cw 5 问题是有一些临时的子文件夹(如obj,objd),我不想要搜索。如何排除与给定模式相匹配的子文件夹。例 ..
发布时间:2017-05-14 21:24:27 软件设计

如何克服反模式“大泥泥”?

什么原因使计算机程序变成大泥泥球?有可能从这种反模式中恢复吗?是否有可以应用的重构方法? 解决方案 一大泥泥通常发生因为以下之一: / p> 需求更改 - 您构建了一套需求的解决方案,随着时间的推移,现在,您可能会喜欢不同的观众,他们希望使用具有略微不同要求的同一产品。您将这些要求烘焙到相同的产品中,最终使用BBOM。 开发人员更改 - 原始产品已被由具有某些设计和架构假设的一 ..
发布时间:2017-05-14 21:24:15 软件设计

Scala:收集不变状态的更新/更改

目前,我正在尝试将一个更具功能性的编程风格应用于涉及低级(LWJGL)GUI开发的项目。显然,在这种情况下,需要携带很多状态,这在当前版本中是可变的。我的目标是最终有一个完全不变的状态,以避免国家的变化作为副作用。我研究了scalaz的镜头和状态monads一段时间,但我的主要关切仍然是:所有这些技术都依赖于写时复制。既然我的国家既有大量的领域,也有一些相当大的领域,我担心的是表现。 据我所 ..

Value Object是不好的模式吗?

使用VO(POCO)是不好的设计模式吗?有些人说,一个对象的所有领域逻辑都需要在该对象中。 例如:ProductVO:Id,Name,Description ProductBO:SearchById(int id),Insert(ProductVO newProduct),Update(ProductVO updatedProduct,SearchByKeyword(string wo ..
发布时间:2017-05-14 21:23:33 软件设计

JSF MVC设计问题

我有一个JSF支持bean设计问题。现在,我的支持bean正在持有UI显示信息以及业务模态数据。人们建议模型和观点应该分开。所以创建不同的bean持有UI显示数据是有好的主意,并且支持bean有引用吗? 解决方案 那么创建不同的bean的好主意是持有UI显示数据,并有支持参考? 是的,否则您继续将模型中的数据映射到自己,同时也可以让JSF / EL执行此操作。这样做不一定需要是J ..
发布时间:2017-05-14 21:22:41 软件设计

服务层模式 - 我们可以避免在特定情况下的服务层吗?

我们正在尝试使用服务层模式实现应用程序,因为我们的应用程序也需要连接到其他多个应用程序,并在网络上进行搜索,我们发现了一个示范图形的链接,以“正确”的方式应用模式: martinfowler.com - 服务层模式 但是现在我们有一个问题:如果我们的系统需要实现一些业务逻辑,只适用于我们的应用程序(如系统本身的一些维护数据) ),我们不需要与其他系统共享。基于以下图形: 看来,为 ..
发布时间:2017-05-14 21:22:29 软件设计

你有多少人做3层设计?

3层设计一直是数字化驱动应用程序多年的标准设计理念,从未失败过。对于那些练习它的人来说,描述你的层次。 我发现很多人混淆了业务层和数据访问层,层次设计。 我更喜欢使用存储过程将数据层几乎全部移动到数据库中,并且在将sproc调用转换为业务的代码中拥有非常轻量级的数据层 如何处理? 编辑:如果你要做的是定义什么3层是,不要浪费你的时间回复。我正在寻找具体的人是如何实现的,您是 ..
发布时间:2017-05-14 21:21:50 软件设计

装饰设计模式

我刚刚开始学习设计模式,而且我有两个与Decorator相关的问题... 我想知道装饰器图案为什么建议装饰器实现它所装饰的组件的所有公共方法? 装饰器类不能用于提供额外的行为,然后是具体的组件另外,如果要装饰的具体组件没有一个基类,这个抽象装饰器可以用来调用其他的东西。 还从派生出来? 提前感谢 解决方案 你有误会的装饰。您正在考虑使用附加功能扩展具体类的简单情况。 ..
发布时间:2017-05-14 21:21:35 软件设计

MVC或MVP?哪种设计模式最有意义?

你们喜欢哪一个?我一直在研究这两者,似乎有人在他们称之为一些不一致。 我会尝试记下差异,你可以纠正如果我错了,我就是这样。 MVC 自己的观察者(Views),对通知观察员的模型的更新。 视图将所有事件和消息传递给Controller。当模型通知发生更改时,视图会更新其内容。视图保存对控制器和模型的引用。 控制器保存模型,(有时)持有视图。视图将调用与用户输入相对应的控制器方 ..
发布时间:2017-05-14 21:21:13 软件设计

抽象工厂与生产者之间的区别?

对不起,再问一次。我已经通过网络进行搜索,但无法理解,所以我必须放在这里。在这里我自己研究了什么我从头部设计模式学习。 抽象工厂模式: img src =“https://i.stack.imgur.com/JLmTR.jpg”alt =“”> 根据差异,我研究了建筑师一些感觉它是一个工厂,但 它只创建一种类型,大部分时间。 那么我可以说NYStore在上面的图像是构建器 ..
发布时间:2017-05-14 21:20:41 软件设计

将Form.ShowDialog()代码重构为MVP

我有一个WinForm和几个属性设置在其上。 例如:名称,地址在窗体上被接受。 (在实际例子中有更多的属性) 目前的实现有点类似于 frmName frmView = new frmName(); // frmName是WINFORM frmView.Name =“ABC”; //任何有效的字符串或从文件 读取此文件frmView.Address =“SomeAddr ..
发布时间:2017-05-14 21:19:42 软件设计

设计模式及其用途的最佳资源是什么?

当使用设计模式时,我猜想有三种类型的商店。那些谁不会知道一个模式,如果它打了他们的脸 - 这些通常喜欢Ctrl-C / Ctrl-V方法进行代码重用。那些每天花上几个小时寻找他们的遗留代码的人希望实现一个更伟大的模式 - 这些通常花费更多的时间重构简单程序的代码,而不是在一百年的维护中花费的时间。最后,那些在中间路径使用模式的人,当他们有意义的时候,使用模式,并编码任何先于最低限度暴露的代码。 ..
发布时间:2017-05-14 21:19:30 软件设计

StockTrader RI>控制器,演示者,WTF?

我正在学习如何通过Prism(复合WPF)项目高级使用WPF。 我观看许多视频和示例,演示应用程序StockTraderRI我问这个问题: 以下每个部分的确切作用是什么? $ b $这个东西可以管理数据 SomethingView:好的,这是什么显示 SomethingPresentationModel:Ok,数据和命令视图绑定到(相当于一个ViewModel)。 Some ..
发布时间:2017-05-14 21:19:18 软件设计

工作单位设计模式

有没有人有任何关于LINQ to SQL的工作单元的实际示例的任何良好的链接 解决方案 唯一的资源我知道的是 Suteki Shop 的代码,ASP.Net MVC应用程序使用LINQ to SQL。 最近进行的一次更改是在所有控制器中实施工作单位。 ..
发布时间:2017-05-14 21:18:35 软件设计

是单调邪恶的单身人士的好表哥吗?

单身人士绝对是在这里被滥用和滥用最多的模式之一。我们中的许多人已经在一点或另一个感染了单身性炎症。奇怪的是,其亲密的表弟 Monostate 不那么有名,更少使用。你对Monostate有什么看法?好还是就是邪恶?这是使用Singleton更好的选择吗?你还会像Singleton一样阻止它的使用吗? 解决方案 Um,monostate 是 Singleton。 ..所以它有完全相同的问题。 ..
发布时间:2017-05-14 21:17:55 软件设计

属性模式的优缺点是什么?

Steve Yegge在属性模式 =“noreferrer”>博客。 对于使用静态语言(如C#或Java)的人来说,这种方法有哪些优点和缺点?在什么样的项目中你想要使用属性模式,什么时候想避免它? 解决方案 我最近一直在挖掘这种模式,我可以告诉你,找到关于它的信息是非常困难的。 Yegge称之为原型或属性,但这两者都相当高度过度使用,而且被称为另外两种不同的模式。有人指的是像Yegg ..
发布时间:2017-05-14 21:14:33 软件设计

在ejb3中使用数据传输对象被认为是最佳实践

虽然显然不是所有的场景都可以被单一的设计覆盖,但现在通常觉得ORM类应该在演示文稿和业务层(本地或远程)之间来回传递,代替了对数据传输对象的需求?就我所见,使用ORM类提出了不必要的加载加载,上下文管理问题和紧耦合的问题,也节省了大量的时间并保持简单。现在是否有一种标准的方法,通常比较适合(对于大多数情况)? 解决方案 这很有趣问题和一个我在两年过去一直在调查和试验。 我认为这里真的 ..
发布时间:2017-05-14 21:13:31 软件设计