TechBlog
首页分类标签搜索关于
← 返回标签列表
加载中...

© 2025 TechBlog. All rights reserved.

#标签

共 259 篇文章
设计模式之-享元模式

设计模式之-享元模式

剥离了外部状态的对象成为共享对象,外部状态在必要时被传入共享对象来组装成一个完整的对象,虽然组装外部状态成为一个完整对象的过程需要花费一定事件,但却可以大大减少系统中的对象数量,相比之下,这点时间或许是微不足道的。在上面的例子中,性别是内部状态,内衣是外部状态,通过区分这两种状态,大大减少了系统中的对象数量,通常来讲,内部状态有多少种组合,系统中便最多存在多少个对象,因为性别通常只有男女,所以该内衣厂商最多只需要2个对象。下面来改写下这个代码。可以看到,改进之后的代码,只需要两个对象便完成了同样的功能。

时间:12/23/2025

设计模式Python策略模式从入门到实战

设计模式Python策略模式从入门到实战

策略模式就是把不同的"做法"分别封装起来,用的时候想换就换。Python写这个特别顺手,毕竟函数可以直接当参数传,比Java那套写法省事多了。这篇文章就带你把策略模式从概念到实战都过一遍。

时间:12/23/2025

设计模式责任链模式springmvc应用

设计模式责任链模式springmvc应用

本文深入剖析了SpringMVC中责任链模式的两大实现场景:拦截器链(HandlerInterceptor)和过滤器链(Filter)。重点分析了HandlerInterceptor拦截器链的核心流程,包括请求处理全生命周期、自定义拦截器实现步骤及执行效果。通过对比两种责任链的差异,总结了SpringMVC责任链的灵活性、中断性和解耦性三大特点。

时间:12/23/2025

Head-First设计模式十三-设计原则-现实世界中的模式

Head-First设计模式十三-设计原则-现实世界中的模式

描述对象之间的关系,而且对象模式主要通过组合定义。对象模式中的关系通常在运行时创建,更加动态和有弹性。牵涉到对象实例化,这类模式都提供一种将客户从需要实例化的对象中解耦的方式。:描述业务,顾客和数据之间的交互,可以应用于如何高效决策并沟通决策等问题。就是你所追求的东西:一个通用的设计,所有人都可以用来解决目标和约束集。指在此上下文中你想要达到的目标,但也要考虑该上下文中发生的任何约束。类模式中的关系是在编译时建立的。:用来创建生气勃勃的建筑,城镇和城市的架构。:是创建系统级架构的模式。

时间:12/22/2025

设计模式之-命令模式

设计模式之-命令模式

1 .命令模式的用途2.应用场景3.demo1-菜单程序4.命令模式的作用不仅仅是封装运算快,还可以很方便地给命令对象增加撤销操作哦,之前策略模式有写过一个Animal类,这个类是让页面上的div移动到水平方向的某个位置,下面来修改一下这个demo现在页面中有一个input文本框和一个button按钮,文本框可以输入一些数字,表示小球移动后的水平位置,小球在用户点击按钮后立即开始移动,代码如下:现在我们想要加一个撤销按钮,以便小球可以会回到初始状态,我们先把目前代码改成用命令模式实现增加撤销按钮现

时间:12/22/2025

Java设计模式实战应用指南23种设计模式详解

Java设计模式实战应用指南23种设计模式详解

本文摘要:设计模式是软件开发中的最佳实践,可分为创建型、结构型和行为型三大类共23种模式。创建型模式包括单例、工厂、建造者等,其中单例模式确保类只有一个实例,工厂模式解耦对象创建,建造者模式简化复杂对象构建。设计模式遵循六大原则(如单一职责、开闭原则等),能提高代码的可维护性和扩展性。掌握设计模式是成为优秀架构师的关键技能。

时间:12/22/2025

5.设计模式-工厂方法模式

5.设计模式-工厂方法模式

工厂方法模式相比简单工厂模式的优点?简单工厂模式在新增加功能时,需要修改工厂类,违背了开闭原则。工厂方法使一个类的实例化延迟到其子类,新增功能时增加一个工厂子类即可。缺点是由于每加一个产品,就需要加一个产品工厂的接口,增加了额外的开发量。

时间:12/21/2025

4.设计模式-代理模式

4.设计模式-代理模式

使用场景有哪些?远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在不同地址空间的事实虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象安全代理,用来控制真实对象访问时的权限智能指引,是指当调用真实的对象时,代理处理另外一些事。

时间:12/20/2025

原型模式-创建型

原型模式-创建型

原型模式摘要原型模式通过复制现有对象(原型)来创建新对象,而非使用new实例化。核心思想是克隆机制,适用于需要高效创建大量相似对象的场景。以孙悟空分身为例,传统方式每次创建分身都需重新初始化技能和装备,存在性能低下、灵活性差和浅拷贝问题。原型模式解决方案包括:1)定义抽象原型类提供克隆接口;2)具体原型类实现深拷贝,确保装备等引用类型被正确复制。该模式显著提升对象创建效率,同时避免内存管理问题。

时间:12/20/2025

设计模式-单例模式

设计模式-单例模式

本文探讨了单例模式的实现及其与六大设计原则的关系。单例模式通过私有构造器和延迟实例化确保全局唯一访问点,但多线程环境下需同步处理。分析显示,单例模式基本违反六大原则(如开放封闭、迪米特法则等),但在资源共享、全局状态控制等场景仍具优势。与静态类相比,单例模式支持延迟加载和实现替换,但静态类更简单高效且线程安全。结论指出没有绝对最优的设计模式,关键在于根据具体需求选择最合适的实现方式。

时间:12/20/2025

Java设计模式之代理模式Proxy深度解析

Java设计模式之代理模式Proxy深度解析

代理模式是一种结构型设计模式,通过代理对象控制对真实对象的访问,在客户端和真实对象之间引入间接层。核心价值包括访问控制、功能增强、延迟加载和简化接口。代理模式分为静态代理和动态代理两种实现方式:静态代理在编译期确定代理关系,需要为每个目标类编写代理类,适合简单场景;动态代理(如JDK动态代理)在运行时生成代理类,基于接口和反射机制实现,更加灵活但有一定性能开销。该模式广泛应用于企业级开发,符合开放封闭原则和单一职责原则,提高了系统的灵活性和可维护性。

时间:12/19/2025

python-设计模式

python-设计模式

设计模式是软件开发中针对常见问题的**可重用解决方案**。它们不是可以直接转换为代码的完整设计,而是解决特定问题的**模板或蓝图**。

时间:12/18/2025

设计模式之-单例模式

设计模式之-单例模式

4.虽然现在完成了一个透明的单例类的编写,但是他同样又一些缺点,在这段代码中,CreateDiv的构造器实际上负责了两件事情。6.通过引入代理类的方式,我们同样完成了一个单例模式的编写,跟之前不同的是,现在我们把负责管理单例的逻辑转移到了代理类ProxySingletonCreateDiv中,这样一来,CreateDiv就变成了一个普通的类,他跟ProxySingletonCreateDiv组合起来就可以达到单例类的效果,这个例子也是缓存代理的应用之一。5.用代理实现单例模式。

时间:12/18/2025

Solidity入门10-智能合约设计模式1

Solidity入门10-智能合约设计模式1

在软件工程中,设计模式是被反复使用的、经过实践验证的解决方案。它们不是具体的代码,而是一种解决特定问题的思路和方法。设计模式的价值:经过实践验证的解决方案减少常见错误提高代码可维护性不需要从零开始设计复用成熟的方案减少开发时间模式通常考虑了安全因素避免常见的安全漏洞提高合约的可靠性团队成员都理解这些模式代码更容易理解和维护降低沟通成本状态机(StateMachine)是一种计算模型,它定义了一组有限的状态,以及状态之间的转换规则。

时间:12/18/2025

基于C的Head-First设计模式笔记策略模式

基于C的Head-First设计模式笔记策略模式

本文介绍了《HeadFirst设计模式》中策略模式的学习笔记,通过C++重写Java示例。以鸭子模拟游戏为例,最初使用简单继承导致代码冗余和修改困难,如橡皮鸭错误继承飞行行为。通过识别变化部分(飞行和叫声行为)并将其封装为独立接口(FlyBehavior和QuackBehavior),使用组合代替继承,实现了行为的动态配置。最终定义了策略模式:将算法族封装为可互换对象,使算法变化独立于使用客户。该模式通过行为委托和多态提高了代码的灵活性和可扩展性,体现了“优先使用组合而非继承”的设计原则。

时间:12/16/2025

二十三种设计模式十二-代理模式

二十三种设计模式十二-代理模式

代理模式通过中间层控制对目标对象的访问,分为静态代理和动态代理两种实现方式。静态代理通过实现目标类接口或继承目标类实现,需要为每个目标类编写代理类;动态代理利用反射机制自动生成代理类,更加灵活。静态代理可分为接口实现、继承和聚合三种方式,而Java原生动态代理基于接口实现。动态代理能自动适应目标类接口变化,适用于复杂业务场景,是实际开发中更常用的代理实现方式。

时间:12/15/2025

每日Java面试场景题知识点之-单例模式

每日Java面试场景题知识点之-单例模式

单例模式是Java企业级开发中的重要设计模式,它保证一个类只有一个实例,并提供全局访问点。在实际项目中,我们需要根据具体场景选择合适的实现方式,并注意线程安全、反射攻击、序列化破坏等问题。掌握单例模式对于Java开发者来说是非常重要的,它不仅能够帮助我们写出更好的代码,还能够在面试中展示我们的设计能力。

时间:12/11/2025

C设计模式之责任链模式以家具生产为例

C设计模式之责任链模式以家具生产为例

摘要:本文介绍了责任链模式在家具生产流程中的应用。该模式通过将各生产环节(如原材料检验、木材切割等)封装为处理者对象并形成责任链,实现生产请求的链式传递和处理。文章详细阐述了核心角色设计,包括抽象处理者、具体处理者和请求对象,并以实木餐桌生产为例展示了C++实现代码。责任链模式的优势在于灵活调整生产流程、快速定位故障点,并符合开闭原则。这种设计模式特别适用于具有明确流程顺序的业务场景。

时间:12/10/2025

前端设计模式

前端设计模式

设计模式是软件工程中解决常见问题的可复用方案。

时间:12/09/2025

设计模式设计模式原则单例模式工厂模式模板模式策略模式

设计模式设计模式原则单例模式工厂模式模板模式策略模式

设计模式是在软件开发过程中经常遇到的问题的通用解决方案。它们是经过无数的验证和经验积累的最佳实践。首先,设计模式是一些前人经验的一些总结,所以,当遇到相似的问题的时候,我们可以直接借鉴好的设计模式来实现,这样可以大大降低我们的试错成本和迭代成本。可以大大提升我们的开发速度。不要认为只有23种,只要是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结都是软件设计模式的。比如说MVC而且,设计模式都是遵守了很多设计原则的,这些原则可以帮助我们大大提升代码的可重用性、可维护性和可扩展性等。

时间:12/08/2025

二十三种设计模式五-建造者模式

二十三种设计模式五-建造者模式

建造者模式是一种创建复杂对象的有效方式,通过将对象构建过程与对象本身分离,使用专门的Builder类逐步设置参数。该模式特别适用于参数多且可选的情况,支持链式调用、参数校验和默认值设置。示例展示了两种实现方式:精简版演示基础概念,生产级版本则包含不可变性、防御性拷贝、空值校验等特性,符合EffectiveJava推荐规范。建造者模式提高了代码可读性和灵活性,使对象创建过程更加清晰可控。

时间:11/30/2025

Slime异步原理单例设计模式5

Slime异步原理单例设计模式5

将放在原则在此处的体现高内聚函数和它紧密操作的数据(pendings)被组织在一起。低耦合外部代码通过一个稳定的接口与状态管理器交互,而不需要了解其内部实现细节。封装性状态管理的具体逻辑被隐藏在类的方法内部,保护了内部状态的完整性。职责单一作为一个整体,负责“管理生成过程的状态”这一单一职责。所以,这个设计决策让不仅仅是一个被动的数据结构,而是一个主动的、有行为的状态管理器,从而使整个系统的代码更加健壮、清晰和易于维护。

时间:11/29/2025

PS-结构参考-Firefly零建模量产-2.5D-等轴游戏资产

PS-结构参考-Firefly零建模量产-2.5D-等轴游戏资产

这篇文章,就跟各位同学分享一下结合了Photoshop(Firefly)结构参考(StructureReference)的2.5D量产工作流。它能让你在没有任何3D基础的情况下,仅用简单的色块,就能量产出透视完美、风格统一的游戏建筑。

时间:11/29/2025

设计模式十七责任链模式-把请求沿链传递,让处理逻辑可组合可扩展

设计模式十七责任链模式-把请求沿链传递,让处理逻辑可组合可扩展

摘要:责任链模式是一种行为设计模式,将请求处理拆分为多个处理器组成的链,每个处理器决定处理请求或传递给下一个处理器。该模式适用于审批流、拦截器等场景,能解耦发送者和处理者,支持动态组装处理链和短路/透传机制。实现上包含抽象处理器、具体处理器和请求对象,可通过链表或集合形式构建处理链。典型应用包括订单处理流程、Servlet过滤器和Spring拦截器。模式支持上下文传递和流程控制,便于灵活扩展业务逻辑。

时间:11/28/2025

上一页
12345...11
下一页第 1 / 11 页