📝 设计模式

89篇技术文档
  业务委托模式

📅  最后修改于: 2021-09-10 02:49:06        🧑  作者: Mango

业务委托充当客户端业务抽象,它为业务服务的实现提供抽象,从而隐藏业务服务的实现。它减少了表示层客户端和系统业务服务之间的耦合。UML 图业务委托模式设计组件业务委托:客户端实体的单个入口点类,用于提供对业务服务方法的访问。LookUp Service:Lookup 服务对象负责获取相关的业务实现,并提供业务对象对业务委托对象的访问。业务服务:业务服务接口。具体类实现此业务服务以提供实际的业务实现逻...

  TIAA 实习体验 – 实习泳池校园

📅  最后修改于: 2021-09-10 02:49:17        🧑  作者: Mango

我通过大学实习过程申请了 TIAA。第 1 轮:在线测试测试在 CoCubes 平台上进行。测试包括能力和编码部分。 Aptitude 包括英语、数学和定量。有关于Java、c++ 和 DBMS 的技术问题。分配给该部分的总时间为 45 分钟。编码问题很简单。有两个问题,其中一个问题是字符串加密,例如 replace {a:z, b:y, c:x, d:w, ……., y:b, z:a}输入字符串...

  序列图和协作图的区别

📅  最后修改于: 2021-09-10 02:49:28        🧑  作者: Mango

序列图是一个交互图,详细说明了所执行的操作。序列图捕获协作上下文中对象之间的交互。序列图以时间为重点,它们通过使用图表的纵轴来表示时间来直观地显示交互的顺序。例子:协作图表示对象的交互以执行特定用例或用例的一部分的行为。设计人员使用序列图和协作图来定义和阐明执行用例的特定事件流的对象的角色。例子:序列和协作图之间的相似之处在统一建模语言中,序列图和协作图都用作交互图。这两个图表都详细说明了系统的行...

  设计类似 Foursquare 的城市指南系统

📅  最后修改于: 2021-09-10 02:49:39        🧑  作者: Mango

城市向导服务的目的城市指南将是允许用户搜索和查找用户位置附近的地方的服务。您可以认为该服务类似于 Foursquare。在开始设计系统之前,最好先定义系统的目的。这意味着,在设计流程之前,需求应该是明确和明确定义的。城市指南服务的目的是根据用户的位置向用户展示位置。您可以找到任何地方,例如餐厅、剧院、电影院等。建议将从附近位置开始到远处位置,但系统也将支持基于专用位置搜索位置。要求和系统边界如果要...

  为内存文件系统设计数据结构和算法

📅  最后修改于: 2021-09-10 02:49:50        🧑  作者: Mango

解释用于设计内存文件系统的数据结构和算法。在可能的情况下用代码逻辑中的示例进行说明。询问:亚马逊最简单的文件系统由文件和目录组成。每个目录包含一组文件和目录。由于文件和目录共享如此多的特征,我们已经实现了它们,以便它们从同一个类 Entry 继承。Java实现的主要逻辑或者,我们可以实现 Directory,使其包含文件和子目录的单独列表。这使得 nurnberOfFiles() 方法更简洁一些,...

  设计模式 |设置 2(工厂方法)

📅  最后修改于: 2021-09-10 02:50:01        🧑  作者: Mango

工厂方法是一种创建设计模式,即与对象创建相关。在工厂模式中,我们创建对象而不将创建逻辑暴露给客户端,客户端使用相同的通用接口来创建新类型的对象。这个想法是使用一个静态成员函数(静态工厂方法)来创建和返回实例,对用户隐藏类模块的细节。工厂模式是创建对象的核心设计原则之一,允许客户端以与库的类层次结构没有紧密耦合的方式创建库的对象(如下所述)。当我们谈论图书馆和客户时是什么意思?库是由某些第三方提供的...

  建造者设计模式

📅  最后修改于: 2021-09-10 02:50:12        🧑  作者: Mango

建造者模式旨在“将复杂对象的构造与其表示分离,以便相同的构造过程可以创建不同的表示。”它用于逐步构造一个复杂的对象,最后一步将返回该对象。构造对象的过程应该是通用的,以便它可以用于创建同一对象的不同表示。Builder设计模式的UML图来源:维基百科Product –产品类定义了由构建器模式生成的复杂对象的类型。Builder——这个抽象基类定义了正确创建产品必须采取的所有步骤。每个步骤通常都是抽...

  状态设计模式

📅  最后修改于: 2021-09-10 02:50:22        🧑  作者: Mango

状态模式是行为设计模式的一种。当对象根据其内部状态更改其行为时,将使用状态设计模式。如果我们必须根据状态改变对象的行为,我们可以在对象中有一个状态变量,并使用 if-else 条件块根据状态执行不同的操作。状态模式用于通过上下文和状态实现提供一种系统的和失去耦合的方式来实现这一点。状态设计模式的 UML 图上下文:定义了一个与客户端进行交互的接口。它维护对可用于定义对象当前状态的具体状态对象的引用...

  面向对象编程 (OOP) 的最佳实践

📅  最后修改于: 2021-09-10 02:50:33        🧑  作者: Mango

顾名思义,面向对象的编程或 OOP 是指在编程中使用对象的语言。面向对象编程旨在在编程中实现诸如继承、抽象、多态和封装等现实世界的实体。 OOP 的主要目的是将数据和对它们进行操作的函数绑定在一起,这样除了该函数之外,代码的其他部分不能访问这些数据。在本文中,我们将了解 OOP 的一些最佳实践。SOLID 首字母缩写词被认为是最好的面向对象编程哲学。让我们了解这实际上意味着什么以及其他一些重要原则...

  发布/重定向/获取 (PRG) 设计模式

📅  最后修改于: 2021-09-10 02:50:43        🧑  作者: Mango

先决条件 – HTTP 协议,使用Python 的GET 和 POST 请求介绍:PRG是 Web 开发中使用的众多设计模式之一。用于防止在提交表单后重新加载同一个网页导致表单的重新提交。它消除了内容冗余以加强搜索引擎优化并使网站用户友好。它被大型、值得信赖的在线商店和其他旨在使用户友好的强大网站使用。问题:当我们尝试提交 Web 表单时,会向服务器发送 HTTP POST 请求。服务器处理请求并...

  中介者设计模式

📅  最后修改于: 2021-09-10 02:50:54        🧑  作者: Mango

中介者设计模式定义了一个对象,该对象封装了一组对象如何交互。Mediator 是一种行为模式(类似于观察者或访问者模式),因为它可以改变程序的运行行为。我们习惯于看到由大量类组成的程序。但是,随着程序中添加更多类,这些类之间的通信问题可能会变得更加复杂。因此,维护成为我们需要以这种方式解决的一个大问题。像在许多其他设计模式中一样,中介者模式来解决这个问题。它使对象之间的通信被一个中介对象封装。对象...

  Zookr.in 面试经历

📅  最后修改于: 2021-09-10 02:51:06        🧑  作者: Mango

Zookr.in 面试过程非常好,知识渊博。这些家伙专注于逻辑和编程技能。说真的,我有点犹豫,因为这家公司的产品评论非常糟糕,但是当我与团队交谈时,我意识到这是每个电子商务的重要组成部分,尤其是他们的那种。在zookr.in 之前,我接受了三星、高盛和亚马逊的采访。我喜欢他们的概念和规模愿景。我喜欢他们采访的地方在于他们的感知方式,他们根据想法来判断人,而不仅仅是书本式的回答。此外,他们对 SDE...

  设计模式 |第一套(介绍)

📅  最后修改于: 2021-09-10 02:51:17        🧑  作者: Mango

设计模式为软件设计中出现的常见问题提供了通用的可重用解决方案。该模式通常显示类或对象之间的关系和交互。这个想法是通过提供经过良好测试、经过验证的开发/设计范例来加快开发过程。设计模式是用于解决常见问题的独立于编程语言的策略。这意味着设计模式代表一个想法,而不是一个特定的实现。通过使用设计模式,您可以使您的代码更加灵活、可重用和可维护。在您的项目中始终实施设计模式并不是强制性的。设计模式不适用于项目...

  中介者设计模式

📅  最后修改于: 2021-09-10 02:51:29        🧑  作者: Mango

中介者设计模式是一种重要且应用广泛的行为设计模式。 Mediator 通过在两者之间引入一个层来实现对象的解耦,以便对象之间的交互通过该层发生。如果对象之间直接交互,则系统组件之间紧密耦合,维护成本更高,并且不难扩展。中介者模式侧重于在对象之间提供中介者进行通信,并帮助实现对象之间的解耦。空中交通管制员是调解员模式的一个很好的例子,其中机场控制室充当不同航班之间通信的调解员。 Mediator 充...

  奇怪的重复模板模式(CRTP)

📅  最后修改于: 2021-09-10 02:51:40        🧑  作者: Mango

背景:建议将 Virtual Functions 和 Runtime Polymorphism 作为先决条件。下面是一个演示运行时多态性的示例程序。输出 :看到这个上面的结果。当一个方法被声明为 virtual 时,编译器会偷偷为我们做两件事:在类对象的前 4 个字节中定义一个 VPtr在构造函数中插入代码以初始化 VPtr 以指向 VTable什么是 VTable 和 VPtr?当一个方法在类中...