单页面个人网站,精准营销服务,房地产网站建设联系方式,dns 国外网站话不多说进入正题~
创建型模式#xff1a;5种 单例模式#xff08;Singleton Pattern#xff09; 确保一个类只有一个实例#xff0c;并提供全局访问点#xff0c;它的主要目的是限制类的实例化并确保所有代码都共享相同的实例。 – 应用#xff1a;Runtime类、数据库连…话不多说进入正题~
创建型模式5种 单例模式Singleton Pattern 确保一个类只有一个实例并提供全局访问点它的主要目的是限制类的实例化并确保所有代码都共享相同的实例。 – 应用Runtime类、数据库连接池、Spring Bean的单例模式日志工具比如SLF4J它们都只有一个全局对象 工厂模式Factory Pattern 将对象的实例化过程封装在一个工厂类中。通过使用工厂方法可以根据需要创建不同类型的对象而无需暴露具体的实例化逻辑 – 应用Spring框架中的BeanFactory和ApplicationContex。它们负责创建和管理对象的实例并将对象的创建逻辑封装在工厂类中客户端通过工厂类获取所需的对象实例。 抽象工厂模式Abstract Factory Pattern 抽象工厂模式提供了一种方式来创建一系列相关对象的接口而无需指定具体的类 – 应用JDBC API中的Connection接口和DriverManager类。Connection接口代表数据库连接对象的抽象而DriverManager类充当了抽象工厂负责创建特定数据库厂商的连接对象比如Oracle、MySQL 建造者模式Builder Pattern 用于创建复杂对象通过将对象的构建过程分解为多个步骤使得同样的构建过程可以创建不同的表示 – 应用StringBuilder和StringBuffer类它们通过提供一系列方法来动态构建字符串对象允许按照特定的顺序添加、修改和组装字符串 原型模式Prototype Pattern 创建对象的克隆通过复制现有对象的属性来创建新的对象而无需通过实例化来创建。它能够提供一种更高效、更灵活的对象创建方式 – 应用Java的Cloneable接口 实现它就具备了原型模式的能力clone()方法会创建并返回一个新的对象副本该副本拥有与原始对象相同的属性值。 结构型模式Structural Patterns 7种 适配器模式Adapter Pattern (适配器类) 将一个类的接口转换成客户端所期望的另一个接口使得原本由于接口不兼容而无法一起工作的类可以协同工作 – 应用Java集合之间的转换、IO流比如InputStreamReader将字节流转为字符流 桥接模式Bridge Pattern 将抽象部分与实现部分分离使它们可以独立地变化 – 应用JDBC抽象部分表示数据库连接的抽象接口实现部分表示不同数据库的具体实现而桥接接口充当连接抽象和实现的桥梁 组合模式Composite Pattern 通过使用相同的接口来处理单个对象和组合对象组合模式使得客户端可以一致地对待它们 – 应用Swing框架中的组件各种UI组件如按钮、文本框等都可以作为单个对象也可以组合 装饰器模式Decorator Pattern 在不改变现有对象结构的情况下动态地将新功能附加到对象上 – 应用IO流的设计 外观模式Facade Pattern 为复杂子系统提供一个简化的接口以便客户端能够更轻松地使用该系统 – 应用URL类提供了一个简单的接口来处理URL的各种操作隐藏了底层复杂的网络通信细节 享元模式Flyweight Pattern 通过共享对象来最大程度地减少内存使用和提高性能通过创建一个工厂类来管理共享对象并在需要时返回已存在的对象或创建新对象 – 应用字符串常量池 代理模式Proxy Pattern 通过创建一个代理对象控制对原始对象的访问。可以在访问原始对象之前或之后添加额外的逻辑从而实现对原始对象的控制和扩展 – 应用Java动态代理。在运行时动态地创建代理对象通过代理对象来间接访问原始对象的方法和属性 行为型模式 11种 责任链模式Chain of Responsibility Pattern 将请求发送者和接收者解耦通过将多个对象组成一条责任链依次处理请求直到有一个对象能够处理它为止 – 应用Servlet中的过滤器Filter、 Spring框架中的拦截器Interceptor 命令模式Command Pattern 将请求封装成一个对象使得可以用不同的请求对客户端进行参数化。 – 应用 线程池ThreadPoolExecutor 每个任务被封装为一个命令对象线程池通过条件来调度。RabbitMQ每个消息被封装为一个命令对象 解释器模式Interpreter Pattern 该模式用于解释语言的语法或表达式它定义了一个表达式接口通过解释器来解释并执行特定的语法规则 – 应用Java正则表达式、 XPath解析器、EL表达式 迭代器模式Iterator Pattern 提供了一种顺序访问聚合对象中各个元素的方法而无需暴露聚合对象的内部表示 – 应用Java集合框架的迭代器IO流readLine()方法、ResultSet对象的next()方法 中介者模式Mediator Pattern 通过一个中介者对象来封装一系列对象之间的交互使得对象之间不需要显式地相互引用从而降低了耦合度 – 应用JVM垃圾回收器、ApplicationContext负责组件之间的通信和协调 备忘录模式Memento Pattern 保存对象的内部状态并在需要时恢复到之前的状态提供了一种捕获和恢复对象状态的机制 – 应用Java事务管理JTA 观察者模式Observer Pattern 定义了一种一对多的依赖关系使得多个观察者对象可以同时监听一个主题对象当主题对象发生变化时会通知所有观察者对象进行更新 – 应用Java事件模型EventObject中的事件和监听器 Java消息服务JMS中消息的发布和订阅机制 状态模式State Pattern 允许对象在内部状态改变时改变它的行为使得对象在不同状态下可以有不同的行为 – 应用Java线程生命周期Thread Lifecycle、Java网络编程中的套接字Socket、JVM中的垃圾回收器Garbage Collector、Spring中的Bean生命周期 策略模式Strategy Pattern 该模式定义了一系列算法并将每个算法封装到可互换的策略对象中使得算法可以独立于使用它的客户端进行变化 – 应用Java集合框架的比较器Comparator、Spring的事务管理器TransactionManager、Java线程调度器 模板方法模式Template Method Pattern 将算法的通用部分放在抽象类中并将具体的实现细节延迟到子类中以实现代码的复用和灵活性 – 应用 IO流设计、HttpServletdoGet()、doPost()方法被子类重写、Spring的JdbcTemplate 访问者模式Visitor Pattern 将数据结构与数据操作分离使得可以在不改变数据结构的情况下定义新的操作 – 应用Spring中的AOP功能式允许切面在目标对象的不同方法上执行特定的操作