设计模式
文章平均质量分 71
lanbing
思从深,行从简
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【场景实战】【设计模式】【go】以电商系统为例讲述设计模式在项目中的应用
本文以电商系统为例讲述设计模式在项目中的应用在面试时经常会被问到项目中设计模式的使用情况,以及自己在开发时也会纠结如何在项目正确使用设计模式,今天就以大家都熟知的电商系统为例,简述一下系统中如何使用常见设计模式的场景。并用Go语言实现相应的示例代码。原创 2025-09-16 20:27:15 · 344 阅读 · 0 评论 -
单例模式 PHP VS GO
在 Go 和 PHP 中实现的核心目标是:确保一个类(或结构体)在整个程序运行期间,并提供一个全局访问点。原创 2025-07-17 11:58:59 · 294 阅读 · 0 评论 -
一文讲透工厂模式
工厂模式(Factory Pattern)是面向对象编程中一种常见的,用于封装和管理对象的创建过程,将对象的。其核心思想是通过工厂类来代替直接使用new关键字创建对象,从而提高代码的灵活性、可维护性和可扩展性。原创 2025-07-17 11:44:24 · 1873 阅读 · 0 评论 -
[场景实战][golang]工厂模式在电商系统中的使用
工厂模式(Factory Pattern)是面向对象编程中一种常见的创建型设计模式,用于封装和管理对象的创建过程,将对象的实例化逻辑与使用逻辑分离。其核心思想是通过工厂类来代替直接使用 new 关键字创建对象,从而提高代码的灵活性、可维护性和可扩展性。:将对象的创建与使用分离,客户端无需知道具体产品的类名或实现细节。:通过工厂类集中控制对象的创建逻辑,便于后续扩展或修改。:新增产品时,只需扩展工厂逻辑,而无需修改原有代码(符合开闭原则)。原创 2025-07-17 11:19:34 · 680 阅读 · 0 评论 -
用go和PHP 两种语言实现常用设计模式demo
模式PHP 特点Go 特点单例模式使用和静态属性使用sync.Once实现线程安全工厂模式通过类方法返回具体子类实例通过函数返回接口类型装饰器模式基于继承和组合,实现接口的动态扩展基于组合和函数,通过装饰器链实现功能增强⚠️注意:Go 语言没有类继承,因此装饰器模式通过函数返回组合结构体的方式实现,而 PHP 通过继承和组合结合实现。原创 2025-07-17 11:17:23 · 364 阅读 · 0 评论 -
[PHP]观察者模式实战
Subject观察者模式是一种经典的行为型设计模式,适用于一对多依赖关系的场景。通过将观察者与主题解耦,可以显著提升系统的灵活性和可维护性。在 PHP 项目中,观察者模式常用于事件驱动系统、消息通知系统等场景。原创 2025-07-17 11:12:41 · 499 阅读 · 0 评论 -
[php]策略模式在项目中的实际应用举例
php在 PHP 项目中使用设计模式,尤其是策略模式,可以显著提升代码的可维护性和可扩展性。通过将不同折扣策略封装为独立类,我们避免了冗长的if-else分支,使得系统更易于理解和扩展。💡提示:在实际项目中,可以结合 PHP 框架(如 Laravel)使用服务容器进行策略的自动注入和管理,进一步提升开发效率。原创 2025-07-17 11:05:11 · 347 阅读 · 0 评论 -
[场景实战]举例在项目研发中是如何使用设计模式的?
在项目研发中,设计模式的运用可以显著提升代码的可维护性、扩展性和灵活性。请结合具体案例,说明设计模式在项目中的实际应用?某商场需要根据客户的购买金额应用不同的折扣策略:如果不使用设计模式,可能会用多个 或 语句硬编码逻辑,导致代码耦合度高、难以扩展。而使用策略模式(Strategy Pattern)可以优雅地解决这个问题。定义策略接口 抽象出一个统一的策略接口,定义所有折扣策略的共同行为: 实现具体策略类 每个具体策略类实现接口,封装不同的折扣逻辑: 策略选择器 定义一个策略选择器,根据金额动态原创 2025-07-17 11:00:26 · 944 阅读 · 0 评论 -
一文讲透编写高质量代码的八大设计原则(下)
YAGNI 原则的英文全称是:You Ain’t Gonna Need It。直译就是:你不会需要它。这条原则的核心思想是:不要做过度设计。不要去设计当前用不到的功能;不要去编写当前用不到的代码。DRY 原则它的英文描述为:Don’t Repeat Yourself。中文直译为:不要重复自己。不要写重复的代码。代码复用性(Code Reusability)、代码复用(Code Resue)和 DRY 原则。代码复用表示一种行为:我们在开发新功能的时候,尽量复用已经存在的代码。代码的可复用性。原创 2025-05-15 15:59:39 · 942 阅读 · 0 评论 -
一文讲透编写高质量代码的八大设计原则(上)
单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP。这个原则的英文描述是这样的:A class or module should have a single responsibility。如果我们把它翻译成中文,那就是:一个类或者模块只负责完成一个职责(或者功能)。开闭原则的英文全称是 Open Closed Principle,简写为 OCP。原创 2025-05-15 15:47:57 · 1133 阅读 · 0 评论 -
面向对象编程 接口vs抽象类的区别?
越抽象、越顶层、越脱离具体某一实现的设计,越能提高代码的灵活性、扩展性、可维护性。3.“基于接口而非实现编程”这条原则,不仅仅可以指导非常细节的编程开发,还能指导更加上层的架构设计、系统设计等。在实际的项目开发中,我们还是要根据具体的情况,来选择该用继承还是组合。2. 我们在定义接口的时候,一方面,命名要足够通用,不能包含跟具体实现相关的字眼;继承是面向对象的四大特性之一,用来表示类之间的 is-a 关系,可以解决代码复用的问题。如果类之间的继承结构稳定,层次比较浅,关系不复杂,我们就可以大胆地使用继承。原创 2025-05-15 12:03:46 · 403 阅读 · 0 评论 -
面向对象编程VS 面向过程编程
对于这两种类的设计,我们尽量能做到职责单一,定义一些细化的小类,比如 RedisConstants、FileUtils,而不是定义一个大而全的 Constants 类、Utils 类。除此之外,如果能将这些类中的属性和方法,划分归并到其他业务类中,那是最好不过的了,能极大地提高类的内聚性和代码的可复用性。除此之外,尽管 getter 方法相对 setter 方法要安全些,但是如果返回的是集合容器,那也要防范集合内部数据被修改的风险。原创 2025-05-12 18:15:31 · 277 阅读 · 0 评论 -
面向对象编程四大特性
封装主要讲如何隐藏信息、保护数据,那抽象就是讲如何隐藏方法的具体实现,让使用者只需要关心方法提供了哪些功能,不需要知道这些功能是如何实现的。抽象存在的意义,一方面是提高代码的可扩展性、维护性,修改实现不需要改变定义,减少代码的改动范围;单继承表示一个子类只继承一个父类,多继承表示一个子类可以继承多个父类。继承主要是用来解决代码复用的问题。多态是指子类可以替换父类,在实际的代码运行过程中,调用子类的方法实现。多态这种特性也需要编程语言提供特殊的语法机制来实现,比如继承、接口类、duck-typing。原创 2025-05-12 16:53:28 · 283 阅读 · 0 评论 -
面向对象编程基本概念介绍
面向对象编程的英文缩写是OOP,全称是 Object Oriented Programming。面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石。面向对象编程语言的英文缩写是OOPL,全称是 Object Oriented Programming Language。面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。原创 2025-05-12 16:08:21 · 423 阅读 · 0 评论 -
如何才能写出高质量代码?
大家在过往的项目开发中,使用过哪种设计模式?是在什么场景下应用的?备注:文章内容参照 王争老师的《设计模式之美》原创 2025-05-12 15:08:50 · 406 阅读 · 0 评论 -
依赖注入与控制反转
但是,反过来就不成立,参数传递不一定是依赖注入,可能是普通的参数,而非某个类。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。如果类A要使用别人提供的一个功能,若为了使用这功能,需要在自己的类中增加额外的代码,这就是侵入性。接口注入中,接口的名字、函数的名字都不重要,只要保证函数的参数是要注入的对象类型即可。当解决过度依赖,对具体类进行抽象的时候,便产生了Ioc,之后依赖注入的是抽象类。PHP依赖注入的3种方式:构造注入,接口注入,setter注入。原创 2023-02-20 13:26:28 · 3563 阅读 · 0 评论
分享