# designPattern **Repository Path**: lynnedb/designPattern ## Basic Information - **Project Name**: designPattern - **Description**: 设计模式 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-06-16 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 设计模式 ### 一、创建型 ### _简单工厂_ 由一个工厂对象决定创建出哪一种产品类的实例; 客户端只需要传入一个正确的参数,不过增加新的产品需要修改工厂类的判断逻辑,违背开闭原则。
### _工厂方法_ 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。
### _抽象工厂_ 提供了一个创建一系列相关或相互依赖对象的接口 适用于一个工厂可以生产出不同产品等级结构的一个产品族
### _单例模式_ ### 二、结构型 ### _装饰者模式_ 在不改变原有对象的基础上,将功能附加到对象上。 提供了比继承更有弹性的替代方案(扩展原有对象功能)。 ### _适配器模式_ 将一个接口转换为客户期望的另一个接口 ### _代理模式_ 为其他对象提供一种代理,以控制对这个对象的访问; Spring中的代理————当Bean有实现接口时,Spring用JDK动态代理;当Bean没有实现接口时,使用CGlib动态代理。 代理模式和装饰者模式: 后者为对象加上行为,前者控制访问; 代理模式和适配器模式: 后者改变对象接口。 ### 三、行为型 ### _模板方法模式_ ### _策略模式_ 定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户。 ### _观察者模式_ 定义了对象之间一对多的依赖。让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖着都会收到通知。 ### _责任链模式_