设计模式
Sahm5k
这个作者很懒,什么都没留下…
展开
-
责任链模式
使多个对象都有机会处理请求,从而将请求的接收者与发送者解耦。将对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。适用于:有多个对象可以处理一个请求,哪个对象处理该请求由运行时刻自动确定。优点:将请求和处理分开,实现解耦,提高系统灵活性。缺点:链较长时,会影响系统性能。调试较为复杂。原创 2023-11-07 11:07:54 · 390 阅读 · 0 评论 -
状态模式(state)
当一个对象有很多种状态且不同的状态有不同的行为的时候可以使用。状态模式由状态类以及环境类(context)组成。状态类抽象类规定的该状态的功能操作,如支付流程中的有未付款、已付款两个状态,未付款状态能够进行商品的选购、付款功能,已付款状态能够进行退出功能。具体状态的功能由子类根据实际情况来实现。实现技巧:状态类接口可以由抽象类来做空实现,函数体直接抛出异常,交由具体子类来实现。环境类作为上下文,标识当前的状态,每次状态的改变需要改变环境类存储的状态信息。优点:可读性高、方便维护且符合开闭原则。原创 2023-11-06 19:52:38 · 467 阅读 · 0 评论 -
中介模式(Mediator)
当各个模块的调用变得错综复杂时,可以使用中介模式,用一个中介对象完成对象交互,各个对象不需要显示的相互引用。创建一个中介对象完成所有的调用:Mediator->A ,Mediator->B,Mediator->C,Mediator->D),而不是A->B->C->D。优点:能够将网状结构的调用分离成星型结构,降低了类与类之间的耦合。缺点:中介者可能会过于复杂,影响整个系统。原创 2023-11-06 17:05:43 · 111 阅读 · 0 评论 -
访问者模式
双分派:我的理解是两次多态操作,动态获取对象。意图:主要将数据结构与数据操作分离。原创 2023-11-05 11:34:25 · 190 阅读 · 0 评论 -
代理模式(静态代理、JDK代理、CGLIB代理)
代理模式有三种不同的形式:静态代理、动态代理(JDK代理、接口代理)、CGLIB代理目标:在不修改目标对象的前提下,对目标对象进行扩展。原创 2023-11-04 19:18:16 · 302 阅读 · 0 评论 -
装饰者模式
装饰者模式:不改变原有类的对象 , 动态地将额外的功能附加到该对象上;主要适用于为一个组件进行功能扩展,并且能够动态的移除扩展。如BufferInputStream类可以装饰FileInputStream,也可以直接用FileInputStream类。原创 2023-11-03 09:29:55 · 77 阅读 · 0 评论 -
桥接模式birdge
桥接模式:将抽象与实现相分离,使他们可以独立变化。原创 2023-11-02 20:38:27 · 102 阅读 · 0 评论 -
建造者模式
建造者模式:将 一个复杂对象的构建过程与其表示分离 , 使得同样的构建过程 , 可以创建不同的表示;用户只需要指定需要建造的类型就可以得到该类型对应的产品实例 , 不关心建造过程细节;原创 2023-11-02 17:40:44 · 85 阅读 · 0 评论 -
原型(Prototype)模式
原型模式是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。目的:通过复制一个已有实例可以提高新实例的创建效率,减少构造函数的调用次数。缺点:需要对每一个类加入clone函数,违背了ocp原则。原创 2023-11-02 16:47:45 · 63 阅读 · 0 评论 -
简单工厂模式、工厂方法模式、抽象工厂模式
将实例化代码提取出来,放到一个类中统一管理和维护,达到和主项目依赖关系的解耦,从而提高项目的扩展性和维护性。工厂模式将复杂的对象创建工作隐藏起来,而仅仅暴露出一个接口供客户使用,具体的创建工作由工厂管理而对用户封装,将对象的创建和使用分离开来,降低耦合度,便于管理,能够很好的支持变化。例如:有多种披萨实现类,有多个披萨店类,每个商店都需要依赖多种披萨。原创 2023-11-02 11:09:34 · 520 阅读 · 0 评论 -
单例模式浅析
程序中仅存在一个对象实例,避免重复构建浪费资源。原创 2023-11-01 20:32:11 · 715 阅读 · 0 评论 -
UML类图关系
依赖关系由箭头表示,含义为A类在类中用到了B类,如B类作为A类的属性、参数、返回值等都属于依赖关系。类与类之间有着相关关系,比如一个老师管理班上的多个学生,用直线表示。例如人身上带着钱包、钥匙,人与钱包、钥匙之间就构成聚合关系。实现用三角箭头和虚线表示,在java中为implement。泛化用三角箭头和直线表示,extend。组合用实心菱形和直线表示。比如人与手脚之间的关系。聚合关系用菱形与直线表示。原创 2023-11-01 19:21:21 · 133 阅读 · 0 评论