java23种设计模式及其应用场景

java23种设计模式及其应用场景


2024年6月6日发(作者:)

创建型模式

单例模式(Singleton):确保一个类只有一个实例。

– 应用场景:数据库连接池、日志记录、缓存系统。

工厂方法模式(Factory Method):定义一个创建对象的接口,但让子类

决定实例化哪个类。

– 应用场景:提供创建对象的灵活性,允许在不改变代码的情况下更

换创建逻辑。

抽象工厂模式(Abstract Factory):提供一个创建一系列相关或依赖对象

的接口,而无需指定具体的类。

– 应用场景:创建复杂的对象结构,需要保持多个对象之间的一致性。

建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使其能

够一步一步创建。

– 应用场景:创建复杂的对象,需要自定义不同的配置或属性。

原型模式(Prototype):通过复制一个现有的对象来创建新的对象。

– 应用场景:创建大量相似对象时,避免重复创建的开销。

结构型模式

适配器模式(Adapter):将一个类的接口转换成另一个类所期望的接口。

– 应用场景:将不兼容的类或系统集成在一起。

桥接模式(Bridge):将抽象部分与实现部分解耦,使它们可以独立变化。

– 应用场景:当需要在抽象层和实现层之间引入灵活性时。

组合模式(Composite):将对象组织成树形结构,以便以类似的方式处理

单个对象和组合对象。

– 应用场景:表示部分与整体之间的层次关系。

装饰器模式(Decorator):在不改变对象自身的情况下,向对象添加新的

功能。

– 应用场景:向对象添加可选项功能,避免创建新的子类。

外观模式(Facade):提供一个统一的界面来访问一个子系统,隐藏其内

部复杂性。

– 应用场景:简化对复杂系统的访问,降低客户端与子系统之间的耦

合。

享元模式(Flyweight):使用共享的对象来减少内存开销和对象数量。

– 应用场景:需要创建大量相同或相似对象时。

代理模式(Proxy):为另一个对象提供一个代理或替身,以便控制对该对

象的访问。

– 应用场景:为对象添加额外的功能,如访问控制、缓存、日志记录。

行为型模式

命令模式(Command):将一个请求封装成一个对象,使请求可以参数化、

队列化和日志记录。

– 应用场景:解耦请求的发送者和接收者,允许以不同的方式执行请

求。

解释器模式(Interpreter):定义一个语言的文法,并提供一个解释器来

解释该语言。

– 应用场景:解析复杂的表达式或语法。

迭代器模式(Iterator):提供一种方法来顺序访问一个聚合对象中的元素。

– 应用场景:遍历集合中的元素,而无需暴露其内部表示。

中介者模式(Mediator):定义一个对象来协调多个对象之间的交互,避

免它们直接依赖。

– 应用场景:减少对象之间的耦合,简化维护。

观察者模式(Observer):定义一个对象(主体)和多个依赖对象(观察

者)之间的一对多依赖关系,当主体状态发生变化时,观察者会得到通知。

– 应用场景:当一个对象的状态变化需要通知多个其他对象时。

状态模式(State):允许一个对象在其内部状态发生变化时改变其行为。

– 应用场景:当一个对象的行为根据其内部状态而改变时。

策略模式(Strategy):定义一系列算法,并将每个算法封装成一个独立的

类,以便算法可以互换。

– 应用场景:当需要在算法之间切换,或需要将算法与它的调用者解

耦时。

模板方法模式(Template Method):定义一个操作的算法骨架,允许子

类重新定义某些步骤而不改变算法的结构。

– 应用场景:定义一个通用的算法,但允许子类自定义具体步骤。


发布者:admin,转转请注明出处:http://www.yc00.com/web/1717686119a2742022.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信