软件设计

帮我避免多重继承。帮助我得到正确的oo设计

我有两个班级LightA和LightB。我有LightB的源代码,但不是LightA的源代码。我用LightDimDip扩展了LightB。即 LightDimDip:extends LightB 。现在我需要将DimDip功能应用于lightB。 任何人都可以提出良好的OOP设计。 再次提醒您,我无法修改LightA。 解决方案 灯是否有通用的界面?在这种情况下,我想你可以在 ..
发布时间:2017-05-16 20:51:28 软件设计

继承 - 子类中的变量初始化

我倾向于根据我在大学学到的“最佳实践”类课程,在可能的基础上,继承组合。我正在看一个应用程序中的一些代码,如下所示: 公共类A 受保护的_Name作为字符串 公共属性名称()As String 获取 返回_Name 结束获取 设置(ByVal值As String) _Name = value 结束集 结束属性 结束类 公共类B 继承A 结束类 公共类C 继承B 结束 ..
发布时间:2017-05-16 20:48:44 软件设计

列表(人)订单

请看下面的代码: 公共类PersonTest 公共功能ListTest () Dim list As List(Of Person)= New List(Of Person) Dim p1 As Person = New Person(1,“Ian”) Dim p2 As Person = New Person (2,“Steven”) Dim p3 As Person = N ..
发布时间:2017-05-16 20:46:22 软件设计

设计模式适合模块化功能匹配应用程序?

由于我在这个问题(关于这个系统的实现),我希望如果我提出这个问题,我可以得到一些更好的建议。 我正在设计一个模块化应用程序,用于视频帧中的特征匹配(例如,在电影或视频的非常接近的帧中匹配,例如这篇文章,由Sivic,Zisserman)。 这个想法是允许在不同的特征检测算法以及不同的匹配程序之间轻松切换。另外,从我的研究中,我的理解是只有几个基本的匹配过程,而新的匹配方法主要集中在不匹 ..
发布时间:2017-05-16 20:45:40 软件设计

使用策略模式重构代码

我有一个GiftCouponPayment类。它具有可以频繁更改的业务策略逻辑 - GetCouponValue()。目前的逻辑是“当优惠券数小于2000时,优惠券价值应被视为零”。在未来的业务策略中,它可能会改变为“当优惠券发行日期小于1/1/2000时,优惠券价值应被视为零。可以根据公司的管理部门改变任何这样的策略。 我们如何使用Strategy模式重构GiftCouponPayment ..
发布时间:2017-05-16 20:45:14 软件设计

Couchbase:最好是单独检索列表对象或每个对象?

我正在使用couchbase快速和分布式访问数据。 我有通过密钥“comm- {index}”存储的社区对象,其中{index}是给定社区对象的关键索引(即comm-1存储对象1,comm -2存储对象2 a等等)。 我需要检索包含所有社区对象的列表,我想知道:是否一个接一个地做一个GET对象,将它添加到一个列表中,或以其他方式存储一个由一个键标识的List对象,并在一个GET中检索整个列 ..

我应该选择什么设计模式?

如果我想为驱动程序设计导航系统GUI。 导航系统的GUI由三个组件组成: A.地图,可以是卫星地图或地图地图 B.目的地位置:声音或文字位置 C.方向。可以是语音或文本 系统工作在两种模式: 1.文本模式:地图,文本位置和文字方向 2语音模式:卫星地图,语音目的地和语音路线 哪种设计模式更好地选择这种情况,你认为抽象工厂是否合适? / p> 解决方案 我将以某种 ..
发布时间:2017-05-16 20:44:25 软件设计

在bussiness和GUI层上设计和使用的参数表如何?

我正在设计一个应用程序,我需要知道如何设计一个常量参数表。另外,我想知道如何在应用程序中使用这个表。 例如:对于系统中的一个参数性别(M或F),它应该在自己的表中,或者最好在特殊表中与其他参数一起使用该参数。我如何在后续的层中使用参数(使用带有参数和主键的常量类)? 我听说过一个特殊的“DB模式”或者创建表的常见方式,使得其模式允许开发过程在该单个参数表上进行中继。你知道这是怎么回事? ..
发布时间:2017-05-16 20:43:07 软件设计

观察者模式的单位测试

我相当新的软件测试。我想知道为观察者模式进行单元测试的正确方法是什么?例如如果我们实现了以下4个类:主题类(attach / detach / notify),Observer接口类(update virtual method),ConcreteSubject类和ConcreteObserver(具体更新方法)。 如何为每个类编写测试轨?有没有一个很好的例子来参考? 感谢任何输入。 ..
发布时间:2017-05-16 20:42:23 软件设计

这是Hibernate会话/事务管理的正确模式吗?

我们正在开发一个使用JSF 2.0(基准)和Hibernate 3.6.1 的应用程序。我们遵循让更高级别的应用程序对DAL框架无关的意见....这意味着我们不使用每个会话的方法,但是我们配置了Hibernate来处理每个线程的会话。 我们已经实现了一个类,它的角色是处理“原子操作”,在没有执行exixt的情况下,打开会话和事务,并简单地将其他数据库操作挂钩到现有事务,使其成为主要操作的一部分 ..
发布时间:2017-05-16 20:41:53 软件设计

域模型序列号

我需要根据给定的前缀码为项目分配下一个序列号。所以你结束了替代号码,如PROJ_ABC_001,PROJ_ABC_002,PROJ_XYZ_001,PROJ_XYZ_002等。 虽然这个需要是非常具体的,我建议有一个更一般的以及常见的情况,其中企业使用作为顺序整数的替代标识,以便识别不同的客户,项目,订单 - 无论如何。 当然这些不是主键数据库。虽然数据库是维护和生成序列号的合理位置, ..
发布时间:2017-05-16 20:40:20 软件设计

是否认为域代码请求数据需要的不良做法?

域实体不应包含与持久性相关的代码,因此它们应该是持久性无知 PI 域名模型 DM 感兴趣的数据可以通过域实体发送到 DM / em>导航属性或上层(即 UI层或服务层)。 但是,我也假设在特定的域实体必须动态决定需要哪些数据的情况下,实体通过诸如资源库的组件请求数据。 如果这个存储库完全与持久层分离,那么我们的实体不违反 PI ,因为它仍然不知道如何获取该数据,它只知道通过从存储 ..

以下代码是否违反了Persistence Ignorance规则

a) 域实体不应包含与持久性相关的代码,因此它们应该是 PI 。但假设域 DM 是使用实体框架设计的,假设服务层执行CRUD操作 POCO 域实体通过Linq-to-Entities ,我们是否会认为服务层可以直接或通过: class CustomerService { public string doSomething(...) { ... var customer = c ..

继续之前如何让程序代码等待用户从GUI输入?

在我的程序中有一个复杂的计算,需要用户评估中间结果。这在命令行应用程序(这是我的代码看起来像现在)中运行良好,因为交互式提示将暂停程序执行,直到用户进入。命令行代码看起来像这样: def calculate(starting): result1 = initial_calculation(starting) user_input1 = input(“你的选择为”+ result1 +“ ..

在哪里提供验证的逻辑规则

我有一个文件导出器,并将字段类型验证为字符串,日期等+还有每行的字段计数。 现在,保留规则对于这样的逻辑,使得负责创建csv的类是通用的,并且与任何业务逻辑分离,并且业务需要改变,那么导出的类不需要修改。 我曾经想过创建一个用于业务逻辑的第二个类,但这将需要以下几点:我同样认为: 硬编码类中的规则 要传递给构造函数的规则 似乎没有良好的解决方案,但这必定是一个常见的问题? ..
发布时间:2017-05-16 20:37:53 软件设计

在MVP方案中,您如何在演示者和视图之间进行沟通?

基本上,我知道有两个选项。 第一个是查看显示主持人应该订阅的通知事件。当用户点击视图上的某些按钮时,只需触发一些事件即可触发某些事件,通知某事发生变化。 第二个只是使用观察者模式,让演示者干扰一些合同。让它成为一个接口,像上面告诉你的事件的方法。演讲者 - 观察者应该附在视图上。 正如杰里米·米勒(Jeremy Miller)在传奇的”建立自己的CAB系列“博客文章说,最好使用第 ..

什么是可插拔适配器设计模式?

我是c ++开发人员,并尝试了解设计模式。在结构模式中,有一个特定的模式称为适配器模式。我如何从GOF书中了解这种模式。在这种模式下,有可插拔的适配器模式,令人困惑,不能理解它。很多,但无法找到满意的答案。任何一个解释什么是可插拔适配器设计模式,用c ++示例?以及正常适配器图案和可插拔适配器图案之间的区别。 提前感谢 解决方案 以下示例符合以下条件: 适配器应该使用与 客户端已 ..
发布时间:2017-05-16 20:34:37 软件设计

MVC和条件格式 - 实施策略

现在我正在编写一个模拟程序,该输出是根据某些因素进行格式化的。问题是在MVC架构中,条件格式在哪里发生?实现此功能的一些策略是什么? FYI,我使用的平台在其GUI /前端执行中是相当赤裸裸的。要更改颜色和格式,需要更改格式化状态(非常像OpenGL)。 解决方案 问题是在MVC架构中, 哪里有条件格式化到 ? 在视图中。它是一个观点元素。它可能会根据模型中的一些其他信 ..
发布时间:2017-05-16 20:33:59 软件设计