05 2024 档案
MySQL 中 FIELD() 自定义排序
摘要:在 MySQL 中,你可以使用 ORDER BY FIELD() 来自定义排序顺序。这个函数允许你指定字段的自定义排序顺序,而不是默认的升序或降序排序。以下是一个简单的例子: 假设你有一个表格叫做 products,其中有一个字段叫做 category,你想按照特定的类别顺序进行排序,比如 'Ele
Java学设计模式之迭代器模式
摘要:一、迭代器模式概念 1.1 什么是迭代器模式 迭代器模式是一种行为型设计模式,它提供了一种方法来顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。简单来说,迭代器模式可以让你遍历一个集合对象,而无需了解其内部结构。 结构 迭代器(Iterator): 定义了访问和遍历元素的接口。 具体迭
Java学设计模式之访问者模式
摘要:一、访问者模式概念 1.1 什么是访问者模式 访问者模式是一种行为型设计模式,它允许你在不改变元素类的前提下定义新操作。这意味着你可以将算法与对象结构分离开来。 结构 访问者(Visitor): 定义了对于每个元素对象的操作,可以是具体的操作或者算法。 具体访问者(Concrete Visitor)
Java学设计模式之责任链模式
摘要:一、责任链模式概念 1.1 什么是责任链模式 责任链模式是一种行为型设计模式,它允许多个对象在处理请求时依次处理,直到其中一个对象能够处理该请求为止。这些对象被连接成一条链,请求沿着链传递,直到被处理为止。责任链模式将请求发送者和接收者解耦,使得多个对象都有机会处理请求,同时避免了请求的发送者需要知
Java学设计模式之备忘录模式
摘要:一、备忘录模式概念 1.1 什么是备忘录模式 备忘录模式是一种行为型设计模式,它允许在不破坏封装性的前提下捕获和恢复对象的内部状态。这种模式通常用于需要实现撤销操作或者历史记录功能的场景。 结构 备忘录模式通常包含以下几个要素: Originator(发起人): 定义了一个方法用于创建备忘录对象,并
Java学设计模式之中介者模式
摘要:一、中介者模式概念 1.1 什么是中介者模式 中介者模式是一种行为型设计模式,它通过将对象之间的交互行为集中到一个中介者对象中来解耦对象之间的关联。这种模式被用来减少对象之间的直接通信,从而降低了系统的耦合度,使得系统易于维护和扩展。 结构 中介者模式通常包含以下几个要素: Mediator(中介者
Java学设计模式之命令模式
摘要:一、命令模式概念 1.1 什么是命令模式 命令模式是一种行为型设计模式,它允许将请求封装成一个对象,从而使得可以用不同的请求对客户端参数化,并且能够对请求排队或记录请求日志,以及支持可撤销的操作。 结构 命令模式通常包含以下几个要素: Command(命令): 定义了执行操作的接口,通常包含一个执行
Java学设计模式之观察者模式
摘要:一、观察者模式概念 1.1 什么是观察者模式 观察者模式是一种行为型设计模式,用于定义对象之间的一对多依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 结构 观察者模式通常包含以下几个要素: Subject(主题): 维护一系列观察者对象,并提供方法来添加、删除和
Java学设计模式之策略模式
摘要:一、策略模式概念 1.1 什么是策略模式 策略模式是一种行为型设计模式,用于定义一系列算法,将每个算法封装在独立的策略类中,并使它们可以互相替换。策略模式可以使算法的变化独立于使用算法的客户端。 结构 策略模式通常包含以下几个要素: Context(环境): 维护一个对策略对象的引用,并且负责调用所
Java学设计模式之状态模式
摘要:一、状态模式概念 1.1 什么是状态模式 状态模式是一种行为型设计模式,用于通过将对象的状态抽象为独立的状态类,使得对象在不同状态下能够有不同的行为。它允许对象在其内部状态发生改变时改变其行为,而不必改变其类。 结构 状态模式通常包含以下几个要素: Context(环境): 定义了客户端感兴趣的接口
Java学设计模式之解释器模式
摘要:一、解释器模式概念 1.1 什么是解释器模式 解释器模式是一种行为型设计模式,用于解释和解析特定语法规则的表达式或语言。它定义了一个语言的语法,并且用于解释语言中的表达式。 结构 解释器模式通常包含以下几个要素: AbstractExpression(抽象表达式): 声明了一个抽象的解释操作,通常是
Java学设计模式之模版模式
摘要:一、模板模式概念 1.1 什么是模板模式 模板模式是一种行为型设计模式,用于定义算法的框架结构,将具体步骤的实现延迟到子类中。这种模式促使子类在不改变算法结构的情况下重新定义算法中的某些步骤。 结构 模板模式通常包含以下几个要素: AbstractClass(抽象类): 定义了算法的框架结构,其中包
Java学设计模式之享元模式
摘要:一、享元模式概念 1.1 什么是享元模式 享元模式是一种结构型设计模式,旨在通过共享对象来最大程度地减少内存使用和提高性能。在享元模式中,对象被设计成可共享的,以便在需要时能够被多个不同的上下文使用。 结构 享元模式通常包含以下几个要素: Flyweight(享元): 定义了共享对象的接口,包含了需
Java学设计模式之组合模式
摘要:一、组合模式概念 1.1 什么是组合模式 组合模式是一种结构型设计模式,它允许你将对象组合成树状结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性,可以用统一的方式处理对象的访问。 结构 组合模式通常由以下几个部分组成: Component(组件): 定义了统一
Java学设计模式之桥接模式
摘要:一、桥接模式概念 1.1 什么是桥接模式 桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。桥接模式通过将抽象部分和实现部分分离来解决多维度变化的问题,从而提高了系统的灵活性和可扩展性。 结构 桥接模式通常由以下几个部分组成: Abstraction(抽象类): 定义了
Java学设计模式之外观模式
摘要:一、外观模式概念 1.1 什么是外观模式 外观模式是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式定义了一个高级接口,这个接口使得子系统更容易使用,同时隐藏了子系统的复杂性。 结构 外观模式通常由以下几个部分组成: Facade(外观): 提供了一个高级接口,用于访
Java学设计模式之装饰器模式
摘要:一、装饰器模式概念 1.1 什么是装饰器模式 装饰器模式是一种结构型设计模式,它允许向现有对象动态添加新功能,同时又不改变其结构。装饰器模式通过将对象放置在包装器类中,然后在运行时动态地向对象添加新的行为或责任,从而实现这一目的。 结构 装饰器模式通常由以下几个部分组成: Component(组件)
Java学设计模式之适配器模式
摘要:一、适配器模式概念 1.1 什么是适配器模式 适配器模式是一种结构型设计模式,它提供了一种将不兼容的接口转化为兼容的接口的方式,从而使原本无法一起工作的类可以协同工作。适配器模式可以分为两种:对象适配器和类适配器。 1.2 对象适配器 对象适配器通过组合的方式,将不兼容的接口适配为所需的接口。这种方
Java学设计模式之原型模式
摘要:一、原型模式概念 原型模式是一种创建型设计模式,其核心思想是通过复制现有对象来创建新对象,而不是通过实例化类来创建。这种方式可以提高创建对象的效率,特别是当对象的创建过程比较昂贵或复杂时。 在原型模式中,原型对象是一个已经存在的对象,它作为新对象的模板。新对象通过复制原型对象的属性来创建,可以是浅拷
Java学设计模式之建造者模式
摘要:一、建造者模式概念 1.1 什么是建造者模式 建造者模式是一种创建型设计模式,用于将一个复杂对象的构建过程与其表示分离,以便同样的构建过程可以创建不同的表示。它允许客户端通过相同的构建过程来构建不同的产品。 建造者模式通常涉及以下几个角色: 产品(Product):表示被构建的复杂对象。该对象通常由
Java学设计模式之工厂模式(含抽象工厂)
摘要:一、工厂模式概念 1.1 什么是代理模式 工厂模式是一种创建型设计模式,用于创建对象而不需要暴露对象的创建逻辑。它将对象的实例化过程封装在一个单独的类中,使得客户端代码只需通过调用工厂类的方法来获取所需的对象,而无需关心具体的实例化过程。 工厂模式通常有三种主要的变体:简单工厂模式、工厂方法模式和抽
Java学设计模式之单例模式
摘要:单例模式是一种设计模式,旨在确保类只有一个实例,并提供一个全局访问点以访问该实例。这在某些情况下非常有用,例如需要全局访问某些资源或配置时,或者在整个应用程序中只需要一个实例时。 在Java中,实现单例模式有多种方式,其中最常见的包括懒汉式、饿汉式和双重检查锁定。 懒汉式(Lazy Initiali
Java学设计模式之代理模式
摘要:一、代理模式概念 1.1 什么是代理模式 Proxy Pattern,代理模式是指为其他对象提供一种代理,以控制对这个对象的访问,代理对象在客户端,服务端以及目标对象之间起到中介作用。并且是属于一种结构型模式 1.2 代理模式架构示意图 静态代理模式 动态代理模式 动态代理没有代理类,可以直接通过反