首页 分享 手撕Java系列

手撕Java系列

来源:花匠小妙招 时间:2024-11-10 04:15
文章目录 1. **创建型模式 (Creational Patterns)** **1.1. 单例模式 (Singleton Pattern)** **1.2. 工厂方法模式 (Factory Method Pattern)** **1.3. 抽象工厂模式 (Abstract Factory Pattern)** **1.4. 建造者模式 (Builder Pattern)** **1.5. 原型模式 (Prototype Pattern)** 2. **结构型模式 (Structural Patterns)** **2.1. 适配器模式 (Adapter Pattern)** **2.2. 桥接模式 (Bridge Pattern)** **2.3. 组合模式 (Composite Pattern)** **2.4. 装饰器模式 (Decorator Pattern)** **2.5. 外观模式 (Facade Pattern)** **2.6. 享元模式 (Flyweight Pattern)** 2.7. **代理模式 (Proxy Pattern)** 3. **行为型模式 (Behavioral Patterns)** **3.1. 责任链模式 (Chain of Responsibility Pattern)** **3.2. 命令模式 (Command Pattern)** **3.3. 解释器模式 (Interpreter Pattern)** **3.4. 迭代器模式 (Iterator Pattern)** **3.5. 中介者模式 (Mediator Pattern)** **3.6. 备忘录模式 (Memento Pattern)** **3.7. 观察者模式 (Observer Pattern)** **3.8. 状态模式 (State Pattern)** **3.9. 策略模式 (Strategy Pattern)** **3.10. 模板方法模式 (Template Method Pattern)** **3.11. 访问者模式 (Visitor Pattern)**

总结一下 Java中的23种设计模式及其在Java源码、Spring框架、Tomcat和MyBatis等经典框架中的应用示例。

1. 创建型模式 (Creational Patterns) 1.1. 单例模式 (Singleton Pattern)

定义:确保一个类只有一个实例,并提供一个全局访问点。

应用场景

当系统中只需要一个实例时,例如日志记录器、配置管理器等。 在需要频繁实例化然后销毁的对象上,使用单例可以节省资源。

示例

Java源码:java.lang.Runtime

public class Runtime { private static final Runtime currentRuntime = new Runtime(); public static Runtime getRuntime() { return currentRuntime; } private Runtime() { } } 12345678910 1.2. 工厂方法模式 (Factory Method Pattern)

定义:定义一个用于创建对象的接口,但让子类决定实例化哪一个类。

应用场景

当一个类不知道它所必须创建的对象的类的时候。 当一个类希望由它的子类来指定它所创建的对象的时候。

示例

Spring框架:org.springframework.beans.factory.FactoryBean

public interface FactoryBean<T> { T getObject() throws Exception; Class<?> getObjectType(); } 12345 1.3. 抽象工厂模式 (Abstract Factory Pattern)

定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

应用场景

当系统应该独立于它的产品创建、组合和表示时。 当一个系统要由多个产品系列中的一个来配置时。

示例

Spring框架:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory

public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFactory implements AutowireCapableBeanFactory, BeanExpressionResolverAware, BeanPostProcessorChecker { // 创建不同类型的bean } 12345 1.4. 建造者模式 (Builder Pattern)

定义:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。

应用场景

当构造过程必须允许被构造的对象有不同的表示时。 当一个对象的构造过程很复杂,或者需要很多参数时。

示例

Java源码:java.lang.StringBuilder

StringBuilder builder = new StringBuilder(); builder.append("Hello"); builder.append(" "); builder.append("World"); String result = builder.toString(); 12345 1.5. 原型模式 (Prototype Pattern)

定义:通过复制现有对象来创建新对象,而不是通过new关键字。

应用场景

当一个系统应该独立于它的产品创建、组合和表示时。 当要实例化的类是在运行时刻指定时,例如通过动态加载。

示例

Java源码:java.lang.Object.clone()

public class Prototype implements Cloneable { @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } } 12345678 2. 结构型模式 (Structural Patterns) 2.1. 适配器模式 (Adapter Pattern)

相关知识

小班幼儿粘贴手撕画教案反思
ins手撕毛边丝带雪纺丝带干枯玫瑰色婚礼鲜花绑带手捧花缎带飘带
【步骤图】年夜饭系列之黄瓜花拼盘的做法
Java案例
JAVA编程艺术
「平安好医生Java招聘信息」
Java 并没有死!那么,Java这朵“永生花”是怎么永葆青春的呢?
使用java编写一只玫瑰花
【步骤图】手作圣诞花环的做法
怎么用java代码生成玫瑰花

网址: 手撕Java系列 https://www.huajiangbk.com/newsview460567.html

所属分类:花卉
上一篇: 关于对《外墙点挂纤维水泥装饰板应
下一篇: 花卉室外应用

推荐分享