软件设计

中介模式和创作

我有几个“小部件”涉及到需要彼此交互的演示文稿,但交互已经变得足够复杂,以保证一个新的对象来处理这些交互。 在尝试通过中介者作为该对象时,我很困惑,因为如何有效地构建参与者。调解员必须知道这些小部件,小部件必须知道调解员。 使用下面的玩具类可以让我看到构造函数的外观以及通常会以什么顺序创建? 干杯, Berryl class WidgetOne { Mediato ..
发布时间:2017-05-16 18:29:27 软件设计

Tesseract OCR:是否可以强制一个特定的模式?

我正在使用Tesseract,我想开发一个能够识别字符序列的应用程序。我有很好的结果,但不是很好。 我想要阅读的字符序列总是一个特定的模式,假设: 数字号码char char - (例如:123AB) 有没有办法“告诉“ocr引擎的结构总是固定的,以提高认可的结果? 提前谢谢。 解决方案 尝试 bazaar 匹配模式: \d\d\d\c\\ \\ c ..
发布时间:2017-05-16 18:26:58 软件设计

如何使用Symfony2和Doctrine 2及其设计模式来制作具体的复杂模型逻辑?

具体类型的问题 我有一个对象A(一个实体)公司(实体), 公司可以联系在一起(如果他们有一些普通股东,例如b $ b)。我想要A能够知道一个公司C1是一个公司C2是 与公司C2联系。 感觉 在我的知识和习惯状态下,我认为公司实体应该有一种方法来告诉他或她不是与另一个一个(点1 )。我可以通过获得所有公司的联系方式来完成这些课程,而且我的公司C2还在那里(第2点)。但这是肮脏的 ..
发布时间:2017-05-16 18:25:49 软件设计

MVC与观察者模式

我最近在StackoverFlow上提出了一个关于MVC的问题:可以在桌面应用程序开发中使用MVC设计模式/架构模式吗? 根据提供的答案,我开始研究关于如何在Windows窗体应用程序中实现。我来了以下CodeProject文章: http://www.codeproject.com/KB/ cs / model_view_controller.aspx 在本文下面的评论中,某些用户认 ..

差异聚集,熟人和组成(由四方使用)

我一直在阅读设计模式:可重用面向对象软件的元素,并解释了聚合和熟人。这是一个摘录(对不起,如果太久了,但我认为所有这一切对解释这个问题很重要): 考虑对象聚合和熟人之间的区别,以及 在编译和运行时显示的不同。聚合 意味着一个对象拥有或负责另一个对象。一般来说,我们 说出具有或是另一个对象的一部分的对象。聚合意味着 ,聚合对象及其所有者具有相同的寿命。 认识意味着一个对象只知道另一个对象 ..
发布时间:2017-05-16 18:23:44 软件设计

我应该将我的自定义方法从控制器转移到模型中吗?

假设我有一个产品型号和ProductsController。控制器具有所有标准的CRUD方法,并且Product执行各种验证等。 这是一个问题。 我有几个自定义非常复杂的操作,也需要以多种格式(json,html,xml,csv,pdf等)进行响应。业务逻辑的原因超出了这个问题的范围。让我们就这样做,就是要做到这一点。 此外,我使用InheritedResources gem,但是我不认 ..

两个对象重叠的图案

我确信这已经被问及回答了,所以我提前道歉,但我没有找出正确的关键字搜索。搜索“模式”的打法太多Q& A有用。 我正在研究一个回归测试应用程序。我在屏幕上显示一个表单,根据哪个用户登录到应用程序,一些字段应该是只读的。所以我可以抽象一个字段对象,我可以抽象一个用户对象,但是我应该看什么模式来描述这两个概念的交集?换句话说,我应该如何描述Field 1和User A,该字段应该是只读的?似乎只读 ..
发布时间:2017-05-16 18:22:50 软件设计

QTreeView或QTreeWidget

我想在我的程序中实现一个嵌套子级别的树,我正在寻找两种(View / Widget)中最适合我的目标。 我有一个任务清单,已经完成/错过/失败,每个任务都有多少次完成/错过/失败,最后是当天的分数。 我想像这样显示: 我使用QTreeWidget在QtCreator中做了这个例子,但我担心这将很难修改因为它们被存储在其他地方,所以元素。 我的忧虑是否合理,我应该去模型/视图 ..
发布时间:2017-05-16 18:21:08 软件设计

工厂设计模式和关键字“新”

我是一名初学者。我知道OOP的基础知识,但我还不知道“最佳实践”。例如,在编程中继续出现的一个范例是“抽象工厂”设计模式,这似乎相当简单。背后的一个关键意图是避免关键字“新”,因为它被认为是有害的。我在编程课程中从未听过这个。有人可以在这一点上阐述吗?为什么要避免以这种形式实例化对象? 解决方案 在您写的客户端/调用者类中考虑: 车辆v =新车(“宝马”); 如果你 ..
发布时间:2017-05-16 18:20:55 软件设计

国家机器实施

我正在尝试建立一个棋盘游戏,而且看起来就像使用状态机一样。 我知道了状态模式,但我确定必须有其他方式来实现状态机。请让我知道..如果你知道任何文章或书籍,其中包含有关不同实现的详细信息(各自的权衡),请指示我..谢谢 解决方案 查看 Ragel 。 ..
发布时间:2017-05-16 18:20:31 软件设计

是否使用has-a(composition)或is-a(继承)来建模汽车对象(及其部件如引擎)?

我正在开发一个包含对象Car的类库。 这个困境是,Car本身将是一个类,包括注册号等字段汽车的一般信息。 但一辆汽车有发动机,底盘等。这些物体也需要建模。他们应该是嵌在车内的课吗?如果没有,嵌入式类的使用场景是什么? 我了解到组合是“一部分”,因此您可以对单独的类进行建模并使用引擎类型,例如,在汽车的现场级别实现这一点。然而,“聚合”与“ctor”中传递的类型“具有”关系也适用( ..
发布时间:2017-05-16 18:19:56 软件设计

Rails中具有动态内容的边栏的设计模式

我希望有一个右侧栏,每个页面都有内容更改。 例如,当我在“朋友”页面时,侧栏应显示“新朋友”。 当我在帐户页面时,侧栏应显示最近的活动。 我应该如何去尊重Rails设计模式?我听说过“细胞宝宝”,但是我不确定是否使用它。 解决方案 命名收益部分 ..
发布时间:2017-05-16 18:19:43 软件设计

异常处理策略 - 重用异常代码

我正在处理一个这样的过程的应用程序。 UI - >后端处理 - >导致UI。 在我的Java代码中,我使用try-catch处理了我的异常,但是在我有所以很多重复的异常可能会在不同的类中引发同样的异常,从而降低了可读性和代码的重用。 所以,我打算做一个异常处理策略,在不同的类中抛出相同的异常,我需要组织异常并重新使用异常代码。 有没有人可以建议我最好 ..
发布时间:2017-05-16 18:19:19 软件设计

AOP通过Generic Repository上的Decorator模式实现

我正在尝试构建一个将Aspect Oriented Programming应用于使用Decorators的项目的原型。我的项目的一些部分将使用通用存储库(对于简单的CRUD),但是最终我还将结合Command和Query处理程序(这些将执行特定的任务,如ProcessCustomerOrders等)。此外,我想在这里举例说明的交叉关切问题是安全性和日志记录。 此外,我知道我的示例代码不是使用 ..

OSGi应用设计 - 我滥用服务框架吗?

在我们正在开发的应用程序中,我有一个用于实现数据提供程序组件的通用接口,我正在将这些提供者挂接为服务。 我的同事们建议,只需创建一个可以跟踪这些实现(目前有多少可用的服务,也可能通过getter将其提供给代码库的其他部分)的服务可能会更好,我们可以使用实施捆绑的激活器。 虽然这通常可以工作,但这几乎是(几乎)服务层首先提供的,对我来说,感觉就像我们 你怎么看? 解决方案 ..
发布时间:2017-05-16 18:17:15 软件设计

使用Qt的GUI编程中是否有单身人士?

我刚刚开始了我的第一个相当大的Qt项目,这个项目主要是一大堆按钮,Tab小部件和Qwt Plots的屏幕。 Qt Quarterly 27 中描述的面板堆栈模式对我的应用程序来说似乎很不错。我的每个屏幕都是封装在面板中的QWidget,由QStackedWidget显示/隐藏。然而,它为每个面板使用单例模式,以便在应用程序启动时不会立即创建,因此每个屏幕中都不会创建多个。 所以我开始编码。面 ..
发布时间:2017-05-16 18:16:45 软件设计

不可变类的方法继承

我绊倒了我希望的一些基本问题。可能是因为我是新来的Scala,可能我还是缺少一些重要的概念。 我正在尝试以FP方式编程,而不是数据类需要有一个可变状态是不可变的,用一些转换方法来创建新的对象来更新它们,如果需要的话。但是,当我有特征和一般的继承到位时,我正在努力维护这种方法的返回类型。我希望尽可能避免混乱的类型或类似的东西,因为这仍然是我的学习经历。 在这里看到这个例子,我有一个不可改 ..
发布时间:2017-05-16 18:16:12 软件设计

存储库模式与Active Record模式相同吗?

他们似乎是相似的。 解决方案 他们是不同的。 活动记录模式定义一个对象,将一行包裹在数据库表或视图中,封装数据访问,并在该数据上添加域逻辑。 > 在存储库模式中,所有的数据访问都放在一个单独的类中,并通过实例方法进行访问。对我来说,只是这样做是有益的,因为数据访问现在被封装在一个单独的类中,使业务对象能够实现业务。这将阻止数据访问和您通过Active Record获得的业务逻辑 ..
发布时间:2017-05-16 18:16:00 软件设计

进度状态报告模式

我正在执行需要显示进程栏(或进度百分比)的长时间运行的进程。长时间运行的过程的整体逻辑是复杂的(各种分页数据检索),因此,我最终在代码中的各个地方硬编码了很多百分比。 在更新完成百分比时,被认为是最佳设计模式? 解决方案 我发现使用的模式在JFace周围 IProgressMonitor 很好地工作。你可以通过看课程来获得一些洞察力。要查看的其他课程是 ProgressMonitor ..
发布时间:2017-05-16 18:15:48 软件设计

一棵树,其中每个节点可以有多个父母

这是一个理论/细节问题:这里有一些很好的问题。不幸的是,我遇到的大多数答案似乎都强调了第三方的解决方案。 想像一下每个财产可以由多方拥有的财产。此外,从所有权的一次迭代到下一个两个邻国领土的所有者可以决定将所有权部分地结合在一起,以便..... 领土1,t = 0: a,b,c,d 区域2,t-0:e,f,g,h 区域1,t = 1:a,b ,g,h territory 2, ..
发布时间:2017-05-16 18:14:46 软件设计