软件设计

复合图案

我对复合模式有疑问。 基类“组件”是否像“复合”类中指向叶对象的指针? 编辑: 让我用下面的话来问我的问题。 “Composite和Component类之间的关系是什么?” 这是模式的uml类图。 p> 解决方案 复合和组件: 1)叶和复合通常实现一个接口或一个抽象类。在图中,它们扩展了Component。所以,图上的关系是继承。 2)Composite包 ..
发布时间:2017-05-16 20:33:32 软件设计

银行系统界面设计 - 面试

我的背景:我是最近毕业的在软件行业工作的毕业生。 问题:我最近接受了一家软件公司的采访,被要求绘制一个银行系统的UML图,显示了2个帐户,例如储蓄和检查,他们有不同的计算兴趣的方式。 我的解决方案:我做了一个帐户类抽象类。 像这样:public abstract class Account { .....} 这个类有两个方法定义在它的deposit()和withdraw()这是任何 ..
发布时间:2017-05-16 20:33:19 软件设计

单身人士模式有什么缺点吗?

可能的重复: 单身人士的情况如何糟糕? 单身人格模式的问题 单身形式有什么缺点吗?我听说这是一个采访问题,而我正在简短介绍一下什么意思。 imho,这是关于使用,而且模式本身没有任何问题。 > 解决方案 从 Wikipedia : 有些人认为它是一个反模式, 判断它是过度使用, 在 的情况下引入了不必要的限制,其中一个 类的唯一实例实际上不需要,而 ..
发布时间:2017-05-16 20:30:55 软件设计

规格型号与规格在BDD

我正在尝试探索行为驱动设计和域驱动设计。我得到了书面规范驱动BDD中的测试,但也可以使用规范模式封装业务逻辑,以便在域对象和存储库等中重复使用。 这些基本相同的概念是以不同的方式使用的,一起使用,还是我完全混淆这些概念? 如果可能,请说明一些。 解决方案 BDD或上下文规范是以测试方式进行单元测试的一种风格。 DDD是由埃里克·埃文斯(Eric Evans)创造的一个术语,它在 ..

客户端类库与Web服务/ Web服务与服务器类库之间的通信

想知道别人做什么/最好的做法来进行层之间的沟通。这个问题涉及2-3层和3-4层之间的沟通。 我们的基础架构(按顺序)如下: UI 前端业务类 Web服务 后端业务课程 DAL Web服务只是一个外观,包括记录和身份验证到后端类库。 因此,Web服务被传递一个请求对象,其中包含web方法所需的参数以及用户凭据(例如,用户凭据存储在基类,因为我们将永远需要将其传递给we ..
发布时间:2017-05-16 20:30:30 软件设计

Play-Slick:是否可以改进这种设计(图案)...以及如何调用?

我分别使用Play-Slick版本2.5.x和3.1.x。我使用Slick的代码生成器,并从现有的数据库中生成Slick模型。其实我很害羞,承认我是DB设计驱动而不是类设计驱动。 这是初始设置: 生成的Slick模型在 generated.Tables ._ Generic Slick dao实现 建立在Generic Slick dao之上的服务层 因为它允许将服务层功能插 ..
发布时间:2017-05-16 20:27:36 软件设计

在哪个项目中添加引用PetaPoco?

我是新的设计模式,并引用Scott Millet的一本书:专业ASP.NET设计模式。 在讨论“分离问题”的章节中,我已经在解决方案资源管理器中相应添加了项目: 虽然本书展示了Linq2SQL的例子,我想使用PetaPoco Micro-ORM。因此,我通过Nuget安装了PetaPoco,但是我不关注是否将PetaPoco添加到所有项目中,或者仅在Model和WebUI项目中。 ..
发布时间:2017-05-16 20:27:12 软件设计

SQL新列与模式匹配

我有一个包含url sting的列,看起来像这样 http://www.somedomain.edu/rootsite1/something/something/ 或 http://www.somedomain.edu/sites/rootsite2/something/something 基本上我只想将字符串返回到根站点(在另一列中)..根站点可以是任意(但是/站点),但它将跟随 ..
发布时间:2017-05-16 20:26:59 软件设计

算法问题 - 附图片

我附上一张照片,我已经显示了我需要检查好/坏块的图表。基本上,我有各个块的大小和行数和列的信息。我也知道该行是否有偶数或奇数块。 我需要创建一个2个块的集群,并检查结果块(结合2)是好还是坏。如果2块好,那么结果是好块,否则不好。 我需要知道它的算法。 如果该行有奇数块,我忽略中间块并考虑最后一个块。 图形为圆形,但圆周上的块将被忽略。所以,我只需要考虑中间的块,如图所示。 ..
发布时间:2017-05-16 20:26:39 软件设计

SharePoint WebParts MVP模式

当您有用户控件(包含下拉列表)和webpart属性(甚至更多的编辑器)时,任何人都可以解释如何为SharePoint Webparts实现MVP模式。 非常感谢你。 解决方案 将webpart控件和webpart属性(包括他们存储的数据)视为视图代码。您真的不想在webpart属性中保留任何域模型信息。 这使得webpart属性和webpart控件视图可以调用来检索域模型信息的创建 ..
发布时间:2017-05-16 20:26:17 软件设计

几乎相似的对象的一个​​很好的设计模式

我有两个网站有几乎相同的数据库模式。唯一的区别是,一个网站中的一些表格有一个或两个额外的字段,另一个表示另一个,反之亦然。 我想要使用相同的数据库访问层类来操纵两个网站。 什么可以是一个很好的设计模式,可以用来处理这一点。 例如,我的DAO类中有一个方法 createAccount(帐户帐户),但网站A和网站B之间的实现将略有不同。 解决方案 如果对象的实现也将几乎相同, ..
发布时间:2017-05-16 20:25:14 软件设计

桥梁模式:实施者是否应该私有?

如果您查看维基百科桥条目,则不一致, UML图将实现者描述为私有变量,但伴随Java代码示例将其视为非私有的,并且精简抽象使用如下代码片段: //低级别ie实现特定 public void draw(){ drawingAPI.drawCircle(x,y,radius); } drawingAPI 实现者,并从精简抽象访问。 同样在维基百科条目中, ..
发布时间:2017-05-16 20:24:25 软件设计

ERLANG - 模式匹配

我有一个变量: Data = [[ [ ,], [, ;>], [,>]] 我正在尝试为两个具体案例进行匹配。 类似于外部结构 - 简单地说[] 任何内容都会尝试 [_] 但不能去? $ b $第二,对于一个特定的模式 ..
发布时间:2017-05-16 20:20:12 软件设计

设计模式添加一个新类

我有两个班,学生和老师,学生有一个具体的方法:takeCourse;老师有一个具体的方法:教学课程。 现在我要添加一个新的Class,GradStudent,可以像学生一样学习,还可以教授课程,如老师。哪种模式是实现这个新类的最简单的方法?适配器,复合,委托....? 谢谢。 解决方案问题应该是什么是最好的方法来建模,答案将是“在现实世界中有道理的方式”,即毕业生也可以教导和考虑 ..
发布时间:2017-05-16 20:19:58 软件设计

如何重用Open Session中的现有连接在Hibernate的视图模式实现中?

我正在使用Hibernate,通过实现“Open Session in View”模式,它会根据请求打开一个新的连接。有没有办法使用现有的连接?我的理解是否正确?可能是我错过了一些实现过程中导致新连接打开的问题? 解决方案 建议:不要自己实现,现有的,如 Spring的: Servlet 2.3绑定 的过滤器Hibernate会话到线程 整个处理请求。 针对“ 查看”中的开放 ..
发布时间:2017-05-16 20:16:21 软件设计

我应该使用事件还是“模板方法”开源库的模式?

我正在构建一个可以总结为这样的开源库: class SuperThing { public function doStuff($ object){ // ... } } 我想提供图书馆用户添加自定义行为的可能性。 例如,他可能想要插入一些日志记录或者他可能想在某一点修改对象。 我看到有两种方法: 模板方法模式似乎是合适的, ..
发布时间:2017-05-16 20:14:43 软件设计

Builder模式是否取代了工厂模式?

我知道这个问题被问了很多次,但我只是想清楚这一点。 构建器模式可以替代工厂模式。 是Builder模式创建并逐步返回一个复杂的对象,这也可以在工厂模式下完成。 / p> 解决方案 他们都是创作模式。所以,不能替代,只是在某些条件下适合的替代方案。模式的本质在于它们为常见的问题提出了解决方案,但微妙的不同问题具有不同的解决方案是非常合理的。 所有讨论 ..
发布时间:2017-05-16 20:13:40 软件设计

为什么有两种不同的模式:抽象工厂和工厂方法

抽象工厂模式为 提供了一个界面,创建一系列对象,而工厂方法 提供了一个接口创建一个对象。 如果这仅仅是这些模式之间的区别,为什么他们被分开考虑? 解决方案 工厂方法是固定的 - 您不能在运行时更改它。 抽象工厂允许您使用不同的工厂创建对象,可以在运行时选择,具体取决于某些条件。 按钮按钮= WinButtonFactory.create(); //将永远是一个“Win ..
发布时间:2017-05-16 20:13:02 软件设计