标签: 设计模式
编程

从真实世界中理解面向对象编程(OOP)

331 2024-09-19 01:37:00

面向对象编程试图像我们的大脑一样对世界进行建模。本文中,我们将探索此建模背后的核心概念。我们如何看待这个世界?人脑不会按原样处理世界:它简化了世界。否则,它将无法处理每秒接收到的大量信息。当然,我们如何简化世界很重要:我们考虑重要的事情而忽略其他事情。换言之,我们在脑海中创造了一个世界模型:用类建模这个建模过程是基于发现事物之间的相似之处...

详情...
编程

Laravel 底层 - 扩展框架

592 2024-06-12 00:32:00

几天前,我正在修复一个不稳定的测试,结果发现我的工厂需要一些 unique 和 valid 值。Laravel 封装了 FakerPHP,我们通常通过 fake() 助手来访问它。FakerPHP 附带了 valid() 和 unique() 等修饰符,但你一次只能使用一个,所以不能执行 fake()->unique()->valid(),这正是我...

详情...
编程

面向对象中的类和对象

494 2024-05-10 18:27:00

本文中,我们将讨论两个基本的面向对象编程概念之间的区别:对象和类。面向对象编程(OOP)是一种关注“什么”而非“如何”的计算机编程模型。在它中,我们围绕数据来组织代码,而不是其他范式(例如函数式编程),在函数式编程中,我们的设计基于我们可以使用输入进行的操作。基于 OOP 的设计的构建块是类、对象、属性和方法

详情...
编程

高级设计 vs. 低级设计

726 2024-04-27 17:26:00

本文中,我们将探讨软件工程中的低级设计和高级设计。什么是高级设计?建筑的鸟瞰图显示了其整体结构、住宅楼层、商业空间和便利设施,以及它们是如何无缝连接的。类似地,高级设计(HLD)就像软件系统的鸟瞰图。它定义了总体架构、主要组件以及它们之间的交互方式。我们可以把它看作是为我们的软件体系结构奠定基础的蓝图。因此,HLD 是设计过程的初始阶段的结果...

详情...
编程

PHP 中间件模式的工作原理及如何使用

750 2024-04-16 03:48:00

在这篇文章中,我们将研究 PHP 中的中间件。这种模式在处理请求和响应时最为常见。但是中间件模式也可以应用于其他各种地方。我们将研究什么是中间件,中间件是如何工作的,中间件何时有用,以及中间件的替代方案是什么。注意: 中间件模式不是“Gang of Four”介绍的模式的一部分,但我个人仍然将其视为一种模式,因为它可以应用于各种情况。什么是中间件呢?PHP ...

详情...
编程

PHP 没有多继承的原因

552 2024-03-20 09:23:00

多年来,PHP 作为一种语言已经有了很大的发展。从最初由 Rasmus Lerdorf 作为他的业余项目开始的一种简单的函数式脚本语言,到支持面向对象编程功能 PHP,已经走过了漫长的道路。尽管 PHP 在其每一个版本中都在实现和改进面向对象编程的功能,但有一个功能是缺失的,我一直想知道为什么这些年来 PHP 中没有这个功能,即多继承。PHP 不支持多继承有...

详情...
编程

设计模式之状态(State)模式

646 2024-03-02 01:14:00

意图状态(State)模式是一种行为设计模式,允许对象在内部状态改变时修改器对象行为。

详情...
编程

PHP 中的访问者模式

591 2024-02-24 08:25:00

访问者模式不常使用。这是因为只有在少数情况下它是适用的,甚至是有意义的。然而,当时机成熟时,这是一个很好的模式。让我们看看如何在 PHP 环境中应用此模式。🛑 问题与其他一些模式一样,访问者模式试图解决在不更改实体的情况下向实体添加功能的问题(很多…)。除了这个非常普遍的问题外,它还提供了一种将功能添加到多个类似实体的方法,而这些实体无法以相同的方式完全处理...

详情...
编程

设计模式之策略(Strategy)模式

672 2024-02-21 23:52:00

策略(Strategy)模式是一种行为设计模式,允许你定义一系列算法,将每个算法放入一个单独的类中,并使它们的对象可互换。

详情...
编程

设计模式之访问者(Vistor)模式

733 2024-02-19 22:18:00

访问者(Visitor)模式是一种行为模式,允许你将算法与它们的操作对象上分离。问题描述:假设你的团队开发了一款应用,它可以处理构造成一个巨大图形的地理信息。图中的每个节点可以代表一个复杂的实体,如城市,也可以代表更精细的东西,如工业、观光区等。如果节点所代表的真实对象之间存在道路,则这些节点与其他节点相连接。在底层中,每个节点类型...

详情...