创建型模式
•单例模式(Singleton):确保一个类只有一个实例。
–应用场景:数据库连接池、日志记录、缓存系统。
•工厂方法模式(Factory Method):定义一个创建对象的接口,但让子类决定实例化哪个类。
–应用场景:提供创建对象的灵活性,允许在不改变代码的情况下更换创建逻辑。
•抽象工厂模式(Abstract Factory):提供一个创建一系列相关或依赖对象的接口,而无需指定具体的类。
–应用场景:创建复杂的对象结构,需要保持多个对象之间的一致性。
•建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使其能够一步一步创建。
–应用场景:创建复杂的对象,需要自定义不同的配置或属性。
•原型模式(Prototype):通过复制一个现有的对象来创建新的对象。
–应用场景:创建大量相似对象时,避免重复创建的开销。
结构型模式
•适配器模式(Adapter):将一个类的接口转换成另一个类所期望的接口。
–应用场景:将不兼容的类或系统集成在一起。
•桥接模式(Bridge):将抽象部分与实现部分解耦,使它们可以独立变化。
–应用场景:当需要在抽象层和实现层之间引入灵活性时。
•组合模式(Composite):将对象组织成树形结构,以便以类似的方式处理单个对象和组合对象。
–应用场景:表示部分与整体之间的层次关系。
•装饰器模式(Decorator):在不改变对象自身的情况下,向对象添加新的功能。
–应用场景:向对象添加可选项功能,避免创建新的子类。
•外观模式(Facade):提供一个统一的界面来访问一个子系统,隐藏其内部复杂性。
–应用场景:简化对复杂系统的访问,降低客户端与子系统之间的耦合。
•享元模式(Flyweight):使用共享的对象来减少内存开销和对象数量。
–应用场景:需要创建大量相同或相似对象时。
•代理模式(Proxy):为另一个对象提供一个代理或替身,以便控制对该对象的访问。
–应用场景:为对象添加额外的功能,如访问控制、缓存、日志记录。
行为型模式
•命令模式(Command):将一个请求封装成一个对象,使请求可以参数化、队列化和日志记录。
–应用场景:解耦请求的发送者和接收者,允许以不同的方式执行请求。
•解释器模式(Interpreter):定义一个语言的文法,并提供一个解释器来解释该语言。
–应用场景:解析复杂的表达式或语法。
spring boot原理和设计模式•迭代器模式(Iterator):提供一种方法来顺序访问一个聚合对象中的元素。
–应用场景:遍历集合中的元素,而无需暴露其内部表示。
•中介者模式(Mediator):定义一个对象来协调多个对象之间的交互,避免它们直接依赖。
–应用场景:减少对象之间的耦合,简化维护。
•观察者模式(Observer):定义一个对象(主体)和多个依赖对象(观察者)之间的一对多依赖关系,当主体状态发生变化时,观察者会得到通知。
–应用场景:当一个对象的状态变化需要通知多个其他对象时。
•状态模式(State):允许一个对象在其内部状态发生变化时改变其行为。
–应用场景:当一个对象的行为根据其内部状态而改变时。
•策略模式(Strategy):定义一系列算法,并将每个算法封装成一个独立的类,以便算法可以互换。
–应用场景:当需要在算法之间切换,或需要将算法与它的调用者解耦时。
•模板方法模式(Template Method):定义一个操作的算法骨架,允许子类重新定义某些步骤而不改变算法的结构。
–应用场景:定义一个通用的算法,但允许子类自定义具体步骤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论