
设计模式
开心自由天使
这个作者很懒,什么都没留下…
展开
-
Scala设计模式UML图例和代码实现实战 行为模式--责任链设计模式
示例类图用于说明责任链设计模式的常见示例是关于应用程序中的事件处理,具体取决于它们是来自鼠标还是键盘操作。对于我们的类图和代码示例,让我们看看我们每天使用的其他东西 - ATM。他们如何以不同的音符组合返回正确的金额?答案当然是责任链。我们将在这里提供两个图表 - 一个允许我们实现责任链模式的类,另一个将显示这些类如何一起用于构建我们的ATM。首先,让我们分别看看我们的类:在上图中,我们有一...翻译 2018-11-06 10:19:53 · 339 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--命令设计模式
在讨论命令设计模式时,通常会有几个对象,每个对象都有自己的特定角色:1.命令:我们可以将其视为调用者调用的接口及其实现。{ MakeSandwichCommand,CleanUpCommand PourJuiceCommand}2.Receiver:这是实际知道如何执行命令的对象。可以将此视为传递给命令的对象,然后在接口方法中使用。{Robot}3.Invoker:它通...原创 2018-11-05 16:36:49 · 493 阅读 · 1 评论 -
Scala设计模式UML图例和代码实现实战 行为模式 之 策略设计模式
策略设计模式在企业应用程序中,具有不同的特定算法实现并在应用程序运行时选择使用一种算法,这是很常见的事情。一些示例可能包括不同的排序算法,这些算法对于不同大小或类型的数据具有不同的性能,对于各种可能的数据表示具有不同的解析器,等等。策略设计模式使我们能够定义一系列算法并在运行时选择特定算法。策略设计模式有助于封装,因为每个算法可以单独定义,然后注入使用它的类中。不同的实现也是...原创 2018-11-05 16:00:03 · 268 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--访问者设计模式
示例类图最初,当开发人员看到访问者设计模式时,似乎可以使用多态轻松替换它,并且可以依赖于类的动态类型。但是,如果我们有一个庞大的类型层次结构呢?在这种情况下,每一次更改都必须更改一个接口,这将导致更改一大堆类,等等。对于我们的类图和示例,让我们假设我们正在编写文本编辑器并且我们有文档。我们希望能够以至少两种数据格式保存每个文档,但可能会出现新的文档。下图显示了使用访问者设计模式的应用程序...翻译 2018-11-05 10:27:20 · 222 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--模板方法设计模式
模板方法设计模式 示例类图模板方法设计模式适用于实现框架。这里典型的是算法通常执行相同的步骤集,然后这些步骤由不同的客户端以不同的方式实现。您可以提出各种可能的用例。对于我们的示例,让我们假设我们要编写一个应用程序,它将从数据源中读取一些数据,解析它,并查找是否存在满足某些条件的对象并将其返回。如果我们考虑它,我们有以下主要操作:读取数据解析数据搜索满足条件的项目如果需要,...原创 2018-11-05 10:15:42 · 334 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--状态设计模式
示例类图想象一下媒体播放器。大多数媒体播放器都有一个播放按钮 - 当我们激活它时,它通常会改变它的外观并变成一个暂停按钮。现在单击暂停按钮也可以执行不同的操作 - 它会暂停播放并恢复播放按钮。这是状态设计模式的一个很好的候选者,根据玩家所处的状态,会发生不同的动作。下面的类图显示了为播放和暂停按钮实现此功能所需的类:我们的播放和暂停实现将状态设置为相反的状态并使我们的播放器正常运行。使用状态设计...翻译 2018-11-05 10:08:24 · 486 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--观察者设计模式
示例类图对于类图,让我们关注以下示例 - 我们有一个包含帖子的网站,人们可以订阅在添加新评论时收到通知。下图显示了如何使用观察者设计模式表示此类内容:Post类是我们的可观察对象,它具有User类型的观察者,每当帖子发生更改时(在我们的情况下,添加注释时)都会通知。请注意,前面的场景只是一个示例。实际上,订阅可以在数据库中完成,人们将收到电子邮件通知。但是,如果我们在您访问网站时...原创 2018-11-05 08:15:37 · 405 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--备忘录设计模式
示例类图想到的memento设计模式的典型示例是文本编辑器。我们总能撤消我们改变的一切。我们将在类图和示例中提供类似的内容。以下是类图:正如您在上图中所看到的,我们的看护人是TextEditorManipulator。它会在每次操作时自动将状态保存在状态堆栈中。 TextEditor实现Originator并创建一个memento对象并从一个恢复。最后,TextEditorMemen...原创 2018-11-05 08:05:47 · 310 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--中介者设计模式
中介设计模式真实世界的软件项目通常包含大量不同的类。这有助于分配复杂性和逻辑,以便每个类完成一个特定的事情,这很简单,而不是许多复杂的任务。然而,这需要类以某种方式彼此通信以便实现某些特定功能,但是然后保持松散耦合原则可能成为挑战。调解器设计模式的目的是定义一个对象,该对象封装了一组其他对象如何相互交互,以促进松耦合,并允许我们独立地改变类交互。中介设计模式定义了一个名为...翻译 2018-11-05 07:48:44 · 202 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--迭代器设计模式
定义行为设计模式顾名思义,行为设计模式与行为有关。 它们的目的是识别和实现应用程序中对象之间的通用通信模式。 它们以这样的方式定义对象交互:对象之间的通信很容易,并且耦合仍然保持在低水平。行为设计模式描述了对象和类如何使用消息相互交互。 与创造和结构设计模式相反,行为设计模式描述了流程或过程。 这意味着开发人员应该非常熟悉他们试图实现的实际过程。 与其他所有类型的设计模式一样,存在行为设计模式...翻译 2018-11-05 07:39:06 · 255 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 结构模式--外观设计模式
外观设计模式 (facade design mode)每当我们构建库或大型系统时,我们通常都依赖于其他库和功能。实现方法有时需要同时使用多个类。这需要知识。每当我们为某人建立一个图书馆时,我们通常会尝试通过假设他们没有(并且不需要)像我们那样广泛的知识来使用户更简单。此外,开发人员确保组件在整个应用程序中易于使用。这是外观设计模式可以变得有用的地方。外观设计模式的目的是用一...原创 2018-11-04 19:20:28 · 294 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 结构模式--(flyweight)享元模式
Scala设计模式UML图例和代码实现实战 结构模式--(flyweight)享元模式示例类图对于类图,首先让我们假设我们正在尝试表示类似于以下的色盲测试的绘图:正如我们所看到的,它由不同大小和颜色的圆组成。潜在地,这可能是无限大的图片,它可以有任意数量的圆圈。为了简单起见,让我们设置一个限制,我们只能有五种不同的圆形颜色 - 红色,绿色,蓝色,黄色和洋红色。以下是我们的类图表...原创 2018-11-04 19:15:57 · 456 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 结构模式--装饰器模式
Scala设计模式UML图例和代码实现实战 结构模式中的 装饰器设计模式在某些情况下,我们可能希望为应用程序中的类添加一些额外的功能。这可以通过继承来完成;但是,我们可能不想这样做,或者它可能会影响我们应用程序中的所有其他类。这是装饰器设计模式有用的地方。装饰器设计模式的目的是向对象添加功能而不扩展它们,并且不会影响同一类中其他对象的行为。装饰器设计模式通过包装...原创 2018-11-04 19:05:15 · 755 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--空对象设计模式
空对象设计模式空对象设计模式大多数面向对象的语言都有一种指定某些值不存在的方法。例如,在Scala和Java中,这可以是可以分配给对象的空值。在对象上调用null的任何方法都会导致NullPointerException,因此开发人员应该小心并检查是否存在这种可能性。但是,这些检查可能会使源代码难以遵循和扩展,因为开发人员应始终注意。这是空对象设计模式有用的地方。空对象设计模式的目的是定义...原创 2018-11-06 10:48:01 · 273 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--值对象设计模式
值对象设计模式值对象设计模式在编程中,有不同的比较数据的方法。我们可以比较对象标识或它们的值。这些在不同的场景中很有用,在这里,我们将看到对象是什么以及何时可以使用它们。值对象是小而简单的不可变对象。他们的平等不是基于身份,而是基于价值平等。值对象用于表示数字,金钱,日期等。它们应该是小而不可变的;否则,更改值可能会导致错误和意外行为。由于它们的不变性,它们在多线程应用程序中非常有用。...原创 2018-11-06 10:34:10 · 391 阅读 · 0 评论 -
Scala设计模式UML图例和代码实现实战 行为模式--解释器设计模式
Scala解释器设计模式在现代编程中,我们有时必须处理来自易于理解和定义明确的域的问题。在某些情况下,使用语言表示域是有意义的,这样可以使用解释器轻松解决问题。解释器设计模式对于指定如何使用类来表示语句并构建语法树来评估语言表达式非常有用。解释器设计模式也使用复合设计模式。解释器的一些常见用途是语言解析,协议等。示例类图创建语言和语法是一项复杂的任务,在进入它之前,开发人员应该确信它确实值...原创 2018-11-05 21:19:49 · 218 阅读 · 0 评论