设计模式
文章平均质量分 74
木羊子羽
源于点滴,记载其源
展开
-
设计模式--总结和对比
设计模式目的框架源码工厂方法模式(Factory Method)封装创建细节单例模式(Singleton)保证独一无二原型模式(Prototype)高效创建对象建造者模式(Builder)开放个性配置步骤代理模式(Proxy)增强职责门面模式(Facade)统一访问入口装饰者模式(Decorator)灵活扩展,同宗同源享元模式(Flyweight)共享资源池组合模式(Composite)统一整体和个体适配器模式(Adaoter)兼容转换桥接模式(Bridge)原创 2024-02-26 23:08:58 · 1158 阅读 · 0 评论 -
设计模式--策略模式和责任链模式
责任链模式(Chain of Responsibility Pattern)是将链中每一个节点看作是一个对象,每个节点处理的请求不同,且内部自动维护一个下一节点对象。策略模式(Strategy Pattern)又叫做政策模式,它是将定义的算法家族、分别包装起来,让它们之间可以相互替换,从而让算法的变化不会影响到使用算法的用户。责任链模式主要是解耦了请求与处理,客户只需要将请求发送到链上即可,无需关心请求的具体内容和处理细节,请求会自动进行传递直至有节点对象进行处理。原创 2024-02-26 21:58:21 · 579 阅读 · 0 评论 -
设计模式--委派模式与模板方法模式
它的基本作用就是负责任务的调用和分配任务,是一种特殊的静态代理,可以理解为全权代理,但是代理模式注重过程,而委派模式注重结果。模板方法模式实际上是封装了一个固定流程,该流程由几个步骤组成,具体步骤可以由子类进行不同实现,从而让固定的流程产生不同的结果。优点:通过任务委派能够将一个大型的任务细化,然后通过同一管理这些子任务的完成情况实现任务的跟进,能够加快任务执行的效率。缺点:任务委派方式需要根据任务的复杂程度进行不同的改变,在任务比较复杂的情况下可能需要进行多重委派,容易造成混乱。原创 2024-02-26 16:46:17 · 651 阅读 · 0 评论 -
设计模式--享元模式和组合模式
其宗旨是共享细粒度对象,将多个对同一对象的访问集中起来,不必为每个访问者创建一个单独的对象,以此来降低内存的消耗,属于结构型模式。透明组合模式的写法:透明组合模式把所有的公共方法都定义在Component中,这样做的好处是客户端无需分辨是叶子节点和树枝节点,它们具备完全一致性的接口;组合模式(Composite Pattern)也称为整体-部分模式,它的宗旨是通过将单个对象和组合对象用相同的接口进行表示,使得客户对单个对象和组合对象的使用具有一致性,属于结构型模式。原创 2024-02-26 00:19:03 · 687 阅读 · 0 评论 -
设计模式--适配器模式桥接模式
适配器模式又叫做变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法一起工作的两个类能够一起工作,属于结构型设计模式。适配器模式有3种形式:类适配器、对象适配器、接口适配器。原创 2024-02-25 19:36:45 · 575 阅读 · 0 评论 -
设计模式--代理模式
代理模式(Proxy Pattern)是指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型模式。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式分为静态代理和动态代理。使用代理模式的主要目的是:保护目标对象;增强目标对象。代理模式的通用写法。原创 2024-02-23 17:09:52 · 1127 阅读 · 0 评论 -
设计模式--原型模式和建造者模式
建造者模式(Builder Pattern)是将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示,属于创建型模式。然而,复制后的克隆对象是的成员复制的不是值,而是引用的地址。上面的复制过程是我们自己完成的,另外,JDK已经帮我们实现了一个现成的API,我们只需要实现Cloneable接口即可。2、创建对象的力度不同,建造者模式创建复杂的对象,由各种复杂的部件组成,工厂模式创建出来的都一样。2、克隆方法位于类的内部,当对已有的类进行改造的时候,需要修改代码,违反了开闭原则。原创 2024-02-22 18:35:02 · 935 阅读 · 0 评论 -
设计模式--单例模式
单例模式可以保证内存里只有一个实例,减少了内存的开销,还可以避免对资源的多重占用。原创 2024-02-22 13:05:20 · 1287 阅读 · 0 评论 -
设计模式--适配器模式
适配器模式适配器模式(Adapter):直观理解就是使原来不能一起相互工作(接口不兼容)的两个功能通过Adapter兼容在一起。类适配器Adapter 类继承Adaptee (被适配类),同时实现Target 接口(因为 Java 不支持多继承,所以只能通过接口的方法来实现多继承),在 Client 类中我们可以根据需要选择并创建任一种符合需求的子类,来实现具体功能(以下类图)。...原创 2018-12-20 13:06:34 · 295 阅读 · 1 评论 -
设计模式--工厂模式
以上代码,父类ICourse指向子类JavaCourse的引用,应用层代码需要依赖JavaCourse,如果业务扩展,继续增加PythonCourse甚至更多,那么我们的客户端的依赖会变得越来越臃肿。需要提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖具体实现。是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。原创 2024-02-21 15:53:25 · 668 阅读 · 0 评论