Design patterns 实现协议的最佳方式是什么?

假设您正在编写一个必须实现HTTP协议的应用程序。协议相当复杂,并且可能允许多个命令,具体取决于它们处于事务的哪个阶段 以SMTP为例。如果在接收“rcpt”和“mail”之前发送了“data”命令,SMTP服务器必须抛出错误 我的问题是:在代码中处理此类协议的最佳方法是什么?是否有与此相关的设计模式 编辑:这个问题与实现协议背后的理论有关。我知道使用库是实践中最好的方法。状态机 在我看来,状态机是建模和处理协议的最简单方法。与接收到的有效命令相关的几个转换将达到一个状态。然后,每个状态只允许命

Design patterns 我可以使用什么体系结构来处理每个产品都需要保存不同属性的购物车

我正在构建一个非常类似于购物车的应用程序。用户从列表中选择产品,然后基于该产品,需要设置和保存一些属性 例如 如果用户选择允许自定义颜色匹配的油漆类型,则我必须允许他们输入通过颜色匹配过程接收的公式编号。因此,我有一个产品的订单详细信息项,它是一种油漆类型,sku具有“AllowsCustomColorMatch”属性,但我还需要将公式编号存储在某个地方 我不知道如何在我的代码中优雅地处理这个问题。我应该创建子类还是产品?现在,我正在保存用户在OrderDetails对象中输入的数据,该对象具有

Design patterns 另一个类中方法的设计模式

我正在寻找一个特定的设计模式 例如,我有一个article类clsArticle。此类包含Id、title、author、article等成员变量。假设我想显示列表中的所有文章。因此,我必须在某个地方创建一个方法getAllArticles()。由于clsArticle不负责获取所有文章,因此我必须将此方法放在另一个类clsArticleFact(Fact代表工厂)中 有人知道这种模式叫什么吗?这是一种设计模式吗?是的。没错 它可以是AbstractFactory或DataAccessObjec

Design patterns 面向对象设计问题

当你注意到一个应用程序有很多类,但这些类不是真正的无形对象,而是一组常见的函数时,你会怎么做 例如: Class Point { calculatePoints(something) {} calculatePointsAnotherWay(something) {} } 如果语言允许,我会让它们成为自由(非成员)函数。如果他们不属于某个类,他们就属于该类之外 如果要对它们进行分组,请将它们放在单独的命名空间中 当然,在C#或Java中,这是不可能的,所以我可能会将它们放在一个单独

Design patterns 挑战-将代码行和数据库行分开

我们都同意db是用于存储的,代码不应该与之紧密耦合。在数据库中存储首选项时,如何实现这一点。让我举个例子 假设您正在创建一个小型在线投票。每个投票可以有一个“投票类型”。以下是一些投票类型: 匿名投票 基于Ip的投票 等等 现在,如果有一个用户创建投票并存储“投票类型”的界面,那么在某种程度上,您不可避免地会将db中的某些内容(主键或名称)与执行“匿名投票”、“基于ip的投票”等操作的代码相关联 约翰·桑德斯(John Sanders)以一种不同但相关的方式说,这很愚蠢——我完全同意他的说法

Design patterns 任何可能的设计模式列表,按“排序”;使用频率?“;

是否有任何设计模式列表,显示哪些是最常用的模式;比如说,按使用频率排序 我想如果有这样一个列表的话,也许它可以作为一种指南,让我们知道从哪里开始学习和实践设计模式 谢谢。我也对这一点感兴趣,我通过查看SO标签的频率来解决这一问题。例如,我发现“mediator”标签只有8个问题,“strategy”标签有45个问题,“singleton”标签有293个问题。好吧,这是粗糙的,但它可能是公正的 单身汉拥有巨大的市场份额:p现实世界中的使用量与模式的优点无关()。任何这样的列表都会欺骗你 在一个典型

Design patterns 命名该模式:这种类型的可执行模块是否已经存在合适的名称?

我很难命名一组遵循相同模式的软件模块。我希望这已经是一个命名模式,因为我不能想出一个像样的名字 情况: 我有一个相当复杂的面向对象应用程序,包括单元测试。我需要开始运行它并玩它。代码库中可能有5到10个入口点,这些入口点可能会成为好的可执行文件,但我不想特别提交任何入口点,构建命令行解析器、配置文件解析器等等,至少现在还没有。在此之前,我正在构建一组主要方法,其中所有程序参数都是硬编码的。这些比真正的可执行文件更容易修改,我是唯一一个在这个游戏阶段需要看到它们的人 这些源代码模块仅仅是一组硬编码

Design patterns 建议:反模式反例

似乎以前没有人问过这个确切的问题,所以我会发问: 我们大多数人都熟悉反模式的概念。然而,避免反模式的实现原则上可能会偏离太远,并导致问题本身。例如,“委员会设计”有一个反例,我称之为“Maverick设计”——其中一个重要功能的设计交给个人,让他们做他们认为最好的事情,目的是在以后审查他们的工作,并决定是最终确定还是进行另一次迭代。这在实践中需要更长的时间,因为团队的其他成员都被其他事情占据着,并且最终可能会得到一个对任何人都不有用的特性,特别是如果特立独行的人本身不是一个有经验的最终用户的话

Design patterns 一个关于结构稍有不同的多个数据库的设计模式问题

我正在重写一个非常旧的Perl项目。此项目用于员工绩效评估。每年,一名员工将由其主管进行评估 该项目于1994年使用mysql首次投入使用。1995年,为1995年的评估创建了一个新的mysql数据库,并修改了源代码。然后是1996年,1997年,…2003年。 2004年,情况有所不同。开发人员使用oracle…直到现在。请看,有10多个数据库 一件非常糟糕的事情是,每年的评估表评估标准都不一样。因此,数据库结构每年都不同 现在我需要使用Jsp/Servlet重写这个项目,这样它就有了一个多年

Design patterns 课堂互动设计模式

我在决定两个类应该如何交互时遇到了一些困难,我遇到的问题似乎会出现很多,所以我想知道是否有人知道解决我问题的设计模式(或任何类型的解决方案) 基本上我有两门课。A类处理向用户显示信息,B类处理存储数据。类A需要从类B获取数据,根据类A的内部状态格式化数据,然后输出数据。例如,类B包含英语字符串,而类A在对这些字符串进行任何进一步处理之前,总是将这些字符串翻译成由类A的实例变量指定的语言 我可以想出两种可能的解决方案,但它们都不是很干净 使类B成为类A的实例变量。在类A中编写函数,从类B中获取数据

Design patterns 对我的设计v2的评论

不久前,我发布了我正在制作的一个应用程序的类图。得到了一些有用的提示,然后去工作了。设计当然很难!不管怎样,我制作了一个2.0版,但遇到了其他问题。也许有人可以给我一些关于我的类图的提示、评论或建议:-) 首先,作为Sprite抽象类的一部分,我在SomeInterface中使用了“Speed”。经过深思熟虑,我认为这不是“速度”的最佳场所。一件不太好的事情是,我无法为接口指定一个正确的名称,并且我不知道在属性或操作隔间中放置“速度”,因为它是一个属性 每个物体(子弹、入侵者、飞船)都以自己的

Design patterns 简单/逐步接触设计模式的良好来源

我想为自己设定一个目标,每周向自己介绍一种新的设计模式。因为我现在在实习,很难让我做到这一点,因为我总是感到内疚,因为我应该做工作&而不是学习一种模式 你知道有什么好的资源吗,最好是网站教程/演示,还有书籍,涵盖了设计模式和应用程序架构/模式。你知道有什么好的资料来源不仅仅是文本块,这不是我学习的最佳方式,我更喜欢遵循教程或观看图形演示的模式 我在谷歌上搜索过好的资料来源,但这些资料似乎要么只涵盖了一些设计模式,要么是大量的文本供阅读 这是一个非常温和的介绍。我喜欢的两个和我喜欢的顺序 我的选择

Design patterns 如何删除另一行上的图案开始?

我想知道是否可以删除到另一行的图案开始 p、 e 早上好| 空行 空行 空行 空行 你好,世界 是否可以从第1行的光标“|”删除到第7行的“世界”? (保持正常模式) 我经常这样做。通常我使用“dd”删除第1行和第7行之间的所有行,然后删除到单词“dfw” 但如果我在第347行,而我的文本在381行,这就很困难了。我必须数一数它们之间的行数,而且经常会删除太多的一行。你可以搜索“世界”: d/world 您可以使用更通用的d命令,而不是使用dd(删除一行),如下所示(^是您的光标) 键入d/t

Design patterns 设计模式

我试图理解设计模式(尤其是观察者模式)。我试图为下面的场景(特别是第二段)创建一个设计模式。我已经包括了一张到目前为止我已经设法制作的UML图的图片。请大家就它是否正确/错误/充分/不足提出建议,或者给我一些有用的建议?我已经尝试使用Observer模式对系统进行建模——是否有其他模式可用于对该场景进行建模 考虑设计一个支持航班预订和航班状态的系统 航空公司的警报。系统集中存储有关已注册用户的信息 并控制客户对信息的访问。顾客 维护一个概要文件,描述一些基本信息,包括姓名、国家/地区 住所、性别

Design patterns 从Datarow创建对象

我想从DataRow对象创建一个对象。这可以通过遍历DataRow对象来完成。但这里的约束是DataRow列不是固定的。数据行可以具有的列数可能会有所不同。我无法根据ColumnName遍历DataRow,因为我不知道哪些列将位于DataRow中 例如,我有一节课 class Abc { string attrib1; string attrib2; string attrib2; public Abc(DataRow dr) { att

Design patterns Don';不要用通勤性质重复你自己

假设我有一个带有名称属性的模型类Person 我还有一个相应的PersonView,其中包含一个子视图NameView PersonView还保留对某人(其模型)的引用,NameView保留对姓名(其模型)的引用 如果我在PersonView中,我现在有两种方法来获取名称:要么 self.person.name 或 所有的参考都是自然的。然而,这似乎违反了《干旱公约》。上述路径应产生相同的名称。但如果有什么东西不同步,它们可能不会 上面的例子比实践中的这些事情要简单得多。例如,此人可能是家庭对

Design patterns 设计模式接受日期

我的一个朋友接受了采访,这是被问到的问题 web应用程序应接受任何模式的日期 也就是说,它可以是mm-dd-yy/dd-mm-yy/dd-mm-yy,1-dd-yyy..任何你能想到的日期模式 他需要一个函数,一旦用户输入,该函数将逐个字符进行验证 我们如何处理这个问题呢?也许我有点误解,但如果问题是关于验证,那么就不是关于解码日期,而是确保日期没有无效。也就是说,不允许您键入29-02-2011或02-29-11等等 我要做的是编写一个函数,首先将日期拆分为几个部分。考虑到这个问题,我们可以说

Design patterns 我知道SRP帮助减少耦合的三种方式。还有更多吗?

我想找出SRP帮助我们减少耦合的所有可能方法。到目前为止,我可以想到三点: 1) 如果A类有多个责任,这些责任将相互耦合,因此,对其中一个责任的变更可能需要对A的其他责任进行变更 2) 由于同样的原因,相关功能通常需要更改,通过将其分组到单个类中,可以在尽可能少的地方进行更改(最多只需要对将这些功能分组在一起的类进行更改) 3) 假设A类执行两项任务(因此可能因两个原因而改变),则使用A的类的数量将大于仅执行一项任务的类的数量(原因是某些类将需要A来执行第一项任务,另一些类将需要A来执行第二项任

Design patterns DAO模式和多个表中的select

在我的应用程序中,我需要创建一个在多个表上运行的复杂查询,并从所有表返回信息 在这种情况下,我如何使用DAO模式 当您有一个用于CRUD的DAO时,它非常简单,但当您必须处理复杂的查询时,它会令人困惑 我是否为这个特定的业务操作创建了一个表示所有表的这个集合信息的对象和一个DAO 或者,我应该为每个表设置一个DAO,并在每个返回对象的DAO上分离此查询,最后我将有许多对象表示该复杂查询 还是有其他选择 DAO类应该直接链接(表示)数据库中的表还是业务类 提前谢谢 您可以稍微解释一下您的业务对象是

Design patterns “如何构建复合结构”;“状态更新功能”;在Clojure?

我有一个以地图表示的游戏状态和一些逻辑,在每个游戏“tic”上更新该状态。但我不知道如何以任何合理的方式构造更新函数 这样构造函数的惯用模式是什么 下面是我想做的一些伪代码: (defn tic [g] "Return an updated game" g1 = (update-in g [:day] inc) g2 = (if (some-cond) (some-update-func g1) g1) g3 = (update-in g2 [:fu] fu-update) ..

Design patterns &引用;插件系统";免费

我正在寻找一种相当于围棋的语言 使用架构师,模块公开“插件”。插件可以指定依赖项,并导出API以允许与其他插件交互。要启动应用程序实例,请指定插件列表。依赖项被解析,插件被按顺序加载(实例化) 由于每个应用程序为每个插件创建一个实例,因此可以在同一个过程中启动多个应用程序而不会发生冲突 编辑:我不需要动态加载其他模块。我不喜欢这样的软件包,但对如何实现这一点有一些想法-希望能有所帮助 为每个插件使用一个 让每个插件(文件)在特殊注释/变量中指定其依赖项 运行生成初始化顺序(,失败周期)的预构建

Design patterns DAO设计模式接口

这种设计模式是否只适用于一个接口,因为我所能找到的只是一个类实现的接口 喜欢这个网站吗 如果我有很多接口,那么设计模式很好用,类图会是什么样的 谢谢。实际上,设计模式只是为您提供解决方案和抽象,而不是将您局限于某些具体的实现。您可以使用最适合自己的逻辑,自由组合部件以实现您的目标 关于 这种设计模式只适合一个界面吗 您可以考虑一个坚实的原则,并且仍然重用DAO模式。 希望这对你有帮助 干杯 该接口的用途是隐藏实现细节,对于这个简单的接口,StudentDao可以创建/更新/读取/删除Stud

Design patterns 工厂-这是哪种设计模式?

我是设计模式领域的新手,我正试图掌握一些诀窍。我多次听说人们使用的“工厂”或“工厂模式”,但当我开始学习设计模式(目前我正在阅读GoF书籍)时,我发现实际上没有“工厂设计模式”这样的东西。GoF书描述了与工厂相关的两种模式:“抽象工厂”和“工厂方法” 所以我的问题是,当人们说“工厂”(不添加任何其他内容)时,他们实际上指的是哪种设计模式 我找到了两个与此事有关的消息来源: 然而,我仍然不确定答案是什么。一个特定的设计模式是否被称为“工厂”,或者我是否应该总是要求某人详细说明它们的含义?工

Design patterns 观察员/通知与代表

假设我有以下应用程序: 在这个应用程序中,我有一个带有两个按钮的菜单,一个按钮带我进入帖子屏幕,另一个按钮只带我进入喜欢的帖子屏幕 在两个视图中,实际的帖子以完全相同的方式呈现,不同之处在于,其中一个视图中,所有帖子都会选择“相似”按钮(相似的帖子屏幕),而另一个视图中会有一些帖子未选择“相似”按钮(帖子屏幕) 例如,如果我在posts屏幕中,单击一篇文章的like按钮,PostView将向PostController报告其like按钮已被单击,PostController将使用Server类

Design patterns 选择函数而不是另一个函数Clojure

我有一套这样的函数 (defn nmf-kernel [a b]) (defn lin-kernel [a b]) (defn log-kernel [a b]) 然后是另一组初始化函数 (defn fill-random ([a b] "filling matrix random") ([a b c] "filling matrix random with another setting parameter")) 好的,我有一个场景: (defn scenario [ke

Design patterns 使用接口然后检查实现类型是否不好?

考虑以下场景: 我想设计一个折扣计算器,它能让我得到可以应用于订单的折扣。有两种类型的订单:在线订单和店内订单。折扣计算器根据订单类型和订单总额计算折扣 我通过编程用C#演示了这个场景,但问题与语言无关。在下面的代码中,DiscountCalculator类通过检查输入参数的实际类型来计算折扣 我觉得检查GetDiscount方法中IOrder参数的实际类型是代码气味;因为我将实现细节隐藏在接口IOrder后面,所以我以某种方式将原本要隐藏的东西带了出来 interface IOrder

Design patterns 使用RX通过中介在两个组件之间进行通信

C1和C2是互不了解的组件。C1做C2关心的事情。我使用“经理/调解人”来允许他们之间的沟通 C1和C2都引用这个中介体。C1调用方法mMediator.notifyItemProducerd()和Mediator将“OnItemProducerd”事件转发给它拥有的任何侦听器。C2实现这个监听器接口,并利用它做它想做的事情 class Mediator { List<Listener> mListeners; public void notifyItemProduce

Design patterns 我如何处理这么多逻辑/链接字段(有点长)?

我正在设计一个数据可视化工具类:给定一个数据对象,它将在用户屏幕上创建它的可视化表示 我必须遵守一些设计限制: 该类将具有一个无参数的“可视化”方法。所有的 可视化设置应为实例字段 类的状态应该总是准确的 举例说明: public class DataVisualizer { public DataObject Object { get { return _object; } set { // logic } } public void Visualize(){

Design patterns 如何使用NLTK或模式es标记西班牙语文本

基本上,我遇到的问题是把宾语和直接宾语代词与动词分开 Ie“aprenderlo”理想情况下应标记为两个单独的实体,“dimelo”应标记为三个。我在这两个库中尝试了各种标记器,但到目前为止,没有任何东西产生我想要的结果。然而,我确信这一定是一个常见的问题-有什么想法吗?这两个库中似乎都没有默认的可用性 最后,我将StanfordCorenlp的相关部分翻译成Python。

Design patterns 消除在运行时创建的用户类中的依赖性

我有一个用户类,它是在运行时在我的业务层中创建的,并且有AddPrefrence、CreateItem和delete等方法。这些方法需要访问存储库。为了消除依赖性,我使用DI容器unity将存储库注入到应用程序的其他部分,但在这里,我有点卡住了,因为我必须传递仅在运行时可用的用户信息。我认为有很多方法可以在unity中传递运行时参数,但这似乎有点代码味道,我也考虑过一个抽象工厂,但这似乎有点过分,因为这是它实际上必须创建的唯一具体类。我还考虑过使用另一种注入,例如属性注入 这个问题有没有一个明确

Design patterns 使用现有类的设计模式

我目前正在努力使用哪种设计模式。我的情况如下: 我有一些现有的类别,例如地址、客户和发票 我需要创建一个类,比如说一个javabean,它可能包含来自上述类的所有字段作为其getter和getter 二传手 稍后,我可以创建javabean的对象,并将其分配给Jasperreport作为其数据源 有谁能告诉我哪种设计模式会让我的工作更轻松,因为我不想重新发明轮子? 谢谢。在这种情况下,如果要将多个类功能混合到一个对象中,可以使用某些语言支持多重继承,但有时很难控制覆盖的内容。我不建议创建继承链,

Design patterns 域层和业务层是一样的吗

在本文中,Martin Fowler提到了域层。域层与业务层是否相同。如果不是,域层是什么?是的,域层是业务层。 并且,域层包含关于域的信息。这是商业软件的核心!业务对象的状态保存在此处。亲爱的@Vladimir感谢您的回答。所以你说的域名是什么意思。我的意思是,这是一个类,一个对象还是实体?一般来说,它是整个层。。。使用实体、类和对象…例如,这里是PHP实现-您可以在域层中找到消息实体,但在中只有1个实体。。。您还可以找到DTO,事件等。。。

Design patterns 抽象工厂违反单一责任原则?

请告诉我,抽象工厂违反了单一责任原则?(我认为他有很多责任。)在计算责任时,“诀窍”是找出责任的构成。当您考虑“对象创建的数量”时,一个复杂的工厂可以执行相当多的任务。但是,即使结果是一个相当复杂的对象图,工厂的首要责任就是创建该图 例如,为了使测试更容易,一系列可怕的步骤可能会被分解成多个部分和子组件,但最终必须有人使用任何参数和依赖项来调用初始值设定项/构造函数。这是工厂本身的责任。抽象工厂有一个单一的责任,提供创建多态对象的契约,而不将接口绑定到特定的实现。换言之,合同是其责任,不构成标的

Design patterns 什么是虚线+;UML和xFF1F中的黑色三角形;

UML中虚线+黑色三角形的意思是什么 UML中不存在这种符号 图的作者似乎实际上指的是一个依赖项,其符号略有不同: UML中不存在这种符号 图的作者似乎实际上指的是一个依赖项,其符号略有不同: UML中虚线+黑色三角形的意思是什么 在给定上下文中,符号无效,可能是一个依赖项(数组头必须打开) 该符号无论如何都存在,并对应于一条用虚线表示的回复消息,虚线带有一个打开或填充的箭头。(正式报告第17.4.4.1章/2017-12-05) UML中虚线+黑色三角形的意思是什么 在给定上下文中,符号无

Design patterns 为什么ConcreteObserver在Observer模式中引用ConcreteSubject?

考虑下图 问题: 在设计模式手册第294页,适用性的第一项: 当抽象有两个方面时,一个方面依赖于另一个方面。将这些方面封装在单独的对象中,可以独立地改变和重用它们 问题1:如果你想“独立地改变和重用它们”,为什么要将ConcreteObserver绑定到ConcreteSubject 不,这不是关于实施的问题。当作者设计图表时,他脑子里一定有一个面向对象的概念,我不认为他们没有注意到这会导致ConcreteSubject和ConcreteObserver之间的耦合 问题2:主题界面的目的是什

Design patterns Broker是一种设计模式,Gamma等人在设计模式中提到过吗。?

Bass等人的书中提到: 代理模式定义了一个名为代理的运行时组件,该组件 调解多个CLLENT和服务器之间的通信 代理模式的原始版本,由Gamma、Helm、Johnson和Vlissides记录 图13.6给出了[Gamma 94] Gamma等人没有发现,包括一个名为Broker的模式。Gamma等人在设计模式中提到了Broker吗 我看到Broker在中被列为一种体系结构模式。 代理是设计模式还是体系结构模式?这似乎是软件体系结构实践中的一个错误陈述。代理模式不是23个GoF模式之一 代

Design patterns 设计模式或代码气味,功能分解后的非规范化数据

我是一个超级粉丝,在我目前的开发中,我一直在寻找沿着功能边界分解我的应用程序的方法,以此来扩展服务器端,特别是数据库层。这涉及到在服务器上实现应用程序的不同功能组件(我们有几个客户可以使用的单独模块)作为他们自己的独立应用程序,与服务器联系的客户机知道它需要为不同数据联系的不同服务,因此向用户提供了一个统一的视图。 当不同组件中的数据之间存在链接时就会出现问题,即一个组件保存所有用户数据,而另一个组件需要引用某个用户作为某个数据段的所有者。目前,我通过保存链接两侧的主键信息来实现这一点(若它们都

Design patterns 贫血域模型&x27;简单领域驱动设计中的s与领域模型

我最近读了一篇关于“”的帖子,引起了我的注意。当我通读这篇文章时,我发现贫血领域模型描述适用于我所从事和构建的许多项目。我从来没有想过这是一个糟糕的设计决定,因为它感觉很自然。我认为在这种情况下,贫血模型重量轻,不太复杂,贫血领域模型的名字非常适合。为什么要在不需要的领域模型中增加复杂性,这样“贫血领域模型”的标题就不能恰当地描述您的代码 问题:在什么情况下,将更多复杂的代码填充到服务/应用程序层才有利于暴露实体对象的复杂性?我完全支持在一个实体上拥有一个“Total”属性,在这个属性中,它可以

Design patterns 抽象工厂问题

我试图理解抽象的工厂设计模式。我有很多麻烦。我尝试使用以下示例来开发UML类图: 汽车设计师可以设计许多不同类型的汽车。汽车可以有两个门,也可以有四个门。汽车可以是四轮驱动,也可以是两轮驱动。汽车由不同的部件组成:车轮、车门、发动机、变速器等。每个部件都有不同的操作:例如,变速器可以有一档()、二档()、三档()、四档()、倒档()、空档() 汽车零件(如上所列)可分为以下系列:本田、吉普、福特等 使用抽象工厂设计方法,我需要开发一个软件系统,以便该系统能够轻松地将汽车从一个家庭更换到另一个家庭

Design patterns 故障转移服务的挑战和最佳实践

有人知道运行Windows服务(在我的例子中,是在.NET中开发的)的最佳实践吗?为了实现高可用性,这些服务将(自动)正确地故障转移到另一台服务器 我可以看到这样做的主要方式是在需要时启动辅助服务器(在这种情况下,需要有东西监视另一台服务器),或者让两个服务一起运行(在这种情况下,它们需要同步它们的工作,以便它们不尝试做相同的事情) 这类问题有没有模式或模型?我知道确切的情况会有很大的不同,但这似乎是一个相当普遍的问题 谢谢 John让两者一直运行可能是最简单的解决方案,但您需要确保负载永远不会

Design patterns 什么是微软统一?

我正在寻找一些关于统一性的基本例子/解释。我很难理解这个概念。我确实对注入模式有了基本的理解,因为看起来统一性与注入模式密切相关。非常感谢您的帮助。检查这里:团结是其中之一。当所讨论的类型遵循时,它可用于组合对象图 最简单的方法是使用构造函数注入模式: public class Foo : IFoo { private readonly IBar bar; public Foo(IBar bar) { if (bar == null)

Design patterns 兴趣区是一个好的设计模式吗?

图像处理库OpenCV有一个称为RegionFinTerest的概念,它使大多数函数只在该区域上运行。该区域可以设置、移动、取消设置等 我正在处理一个类似的应用程序数据,我正在考虑使用类似的模式,选择一个区域,并在该区域内进行分析和处理 感兴趣的区域是推荐的设计模式吗?我知道它提高了OpenCV的性能,而OpenCV是一个需要高性能的应用程序。我的应用程序将从高性能中受益,但它并不像OpenCV中那样重要 还有什么替代方案?我正在考虑创建一个区域对象来解决相同的问题,但是,例如,可以从同一组数据

Design patterns MVC是从哪个GOF模式发展而来的?

我看过并研究过(不一定记住)GOF模式,但我真的不明白MVC从何而来。我最好的猜测,这仍然只是一个猜测,但它似乎是从桥模式下降。但是,我也不能说。有人有什么想法吗?I MVC不会直接从任何想法中派生出来。MVC在技术上不是一种设计模式,而是一种架构模式,比MoF设计模式更广泛。MVC本身也很广泛。有许多不同的实现,每一个都使用不同的设计模式或不同设计模式的组合 在Head First Design Patterns一书中,他们使用Strategy、Composite和Observer模式来实现M

Design patterns 用于在类或方法之间传递数据的DTO是否有名称?

据我所知,应该使用DTO在两个不同的进程或机器之间传递信息。 我想知道,在不包含业务逻辑的意义上,类似于DTO的对象,但用于在方法或类之间传递信息的对象是否有一个特殊的名称(可能是模型对象?在域模型中,是否更符合您的要求 DTO是一个经常超载的术语,对不同的人意味着不同的事情。然而,如果你看一下Fowler的,肯定会有一种倾向,那就是在远程通信环境中,而不是在域模型环境中,使用它们来提高效率。在域模型中,你想要的可能更多 DTO是一个经常超载的术语,对不同的人意味着不同的事情。然而,如果你看一下

Design patterns 为什么建议在web或应用程序项目中使用设计模式?

为什么建议在web或应用程序项目中使用设计模式? 我只使用MVC 这取决于使用设计模式的项目类型?还是取决于项目团队 很抱歉提出了一个新手问题首先,MVC也是一种设计模式。 设计模式只不过是解决常见问题的标准方法。使用它的理由是: 你可以用新方法避免人们犯的错误 这是一种广泛接受的方法。因此,在不进行太多深度潜水的情况下,充分测试和限制是众所周知的 节省时间,因为第一和第二 有很多设计模式。有些应用于实现时的低级设计(单例模式、装饰器等,列表非常庞大),或者应用于类图或用例分析。 有些应用于设计

Design patterns 有没有可能使整个程序没有任何硬编码部分?

通常,当我们想要制作一个无需重新编译即可修改的程序时,我们从文件中读取数据和配置 但这意味着在代码的某个地方,我们必须硬编码数据或配置文件的文件位置 例如: public class Program { public static void Main() { AppData appData = ReadAppData("app.data"); AppConfig appConfig = ReadAppConfig("config.txt");

Design patterns 如何使用grok拆分log4j消息

我发现,在AIX7.2中使用rsyslog将log4j消息推送到了Nagios。 我想将消息拆分为“at oracle.sql…”。 我编写grok过滤器,如下所示: \[%{DATA:LOG_LEVEL}\] %{TIMESTAMP_ISO8601:timestamp} \[%{GREEDYDATA:MSG}\] %{DATA:LOGNAME} %{DATA:sessionid} \- %{GREEDYDATA:java_msg} 但是直到最后它都会收到完整的消息:(如何分割消息 [ERRO

Design patterns 什么';CQRS中的查询/命令对象点是什么?

有一个额外的传输对象有什么意义 为什么 cookingRecipeCommandHandler.Handle(new CreateCookingRecipeCommand(...)); 胜过 我很难理解这些附加对象的优点是什么 有一个额外的传输对象有什么意义 可重复使用的组成 cookingRecipeCommandHandler.Handle(new CreateCookingRecipeCommand(...)); 通常,上面的代码行会出现,因为我们有这样的代码 class Cook

  1    2   3   4   5   6  ... 下一页 最后一页 共 37 页