设计模式
文章平均质量分 85
斑马工
别在最好的年纪,选择安逸。
展开
-
深入浅出设计模式---7、策略模式
策略模式定义:策略模式是对算法的包装,把使用算法的责任和算法本身分隔开,委派给不同的对象管理。策略模式通常把一系列的算法包装 到一系列的策略类里面,作为一个抽象策略类的子类。简单来说就是就定义一个策略接口,子类策略去实现该接口去定义不同的策略。然后定义一个环境(Context,也就是需要用到策略的对象)类,以策略接口作为成员变量,根据环境来使用具体的策略。优点:1、算法可以自由切换。2、避免使用多重条件判断。3、扩展性良好。缺点:1、策略类会增多。2、所有策略类都需要对外暴露。策略模原创 2022-03-31 15:48:53 · 9607 阅读 · 0 评论 -
深入浅出设计模式---6、装饰者模式
装饰者模式定义:动态的向一个现有的对象添加新的功能,同时又不改变其结构。它属于结构型模式。优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功 能。缺点:多层装饰比较复杂。装饰者模式案例案例:结算价格计算,根据不同价格嵌套运算订单结算价格实战在订单提交的时候,订单价格和结算价格其实是两码事,订单价格是当前商品成交价格,而结算价格是用户最终需要支付的金额,最终支付的金额并不是一成不变,它也并不是商品成交价格,能改变结算价格的因素原创 2022-03-31 15:18:50 · 10078 阅读 · 0 评论 -
深入浅出设计模式---5、享元模式
享元模式定义运用共享技术来有効地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。享元模式和单例的区别:单例是对象只能自己创建自己,整个应用中只有1个对象 享元模式根据需要共享,不限制被谁创建(有可能有多个对象实例)优点:特定环境下,相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。‘缺点:为了使对象可以共享,需要将一些不能共享的状态外部化,这将增加程序的复杂性。享元模原创 2022-03-31 14:45:13 · 9821 阅读 · 0 评论 -
深入浅出设计模式---4、适配器模式
适配器模式**定义:**将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。优点:可以让任何两个没有关联的类一起运行。提高了类的复用。灵活性好。**缺点:**过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接 口的实现,一个系统如果太多出现这种情况,无异于一场灾难。Spring Aop适配器+代理模式案例Spring架构中涉及了很多设计模式,本文来介绍下Spring中在AOP实原创 2022-03-28 17:56:47 · 10130 阅读 · 0 评论 -
深入浅出设计模式---3、代理模式和工厂模式
代理模式**定义:**给某对象提供一个代理对象,通过代理对象可以访问该对象的功能。主要解决通过代理去访问[不能直接访问的对象,例如 租房中介,你可以直接通过中介去了解房东的房源信息,此时中介就可以称为代理。优点: 1、职责清晰。 2、高扩展性。 3、智能化。缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。代理实现方式:基于接口的动态代理提供者:JDK官方的Proxy类。要求原创 2022-03-28 17:59:42 · 10986 阅读 · 0 评论 -
深入浅出设计模式---2、单例模式和观察者模式
单例模式单例模式单例模式(Singleton Pattern)是 Java 中最常见的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。单例模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。该类还提供了一种访问它唯一对象的方式,其他类可以直接访问该方法获取该对象实例,而不需要实例化该类的对象。单例模式特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。单例模式优点:在内存里只有一个原创 2022-03-28 17:59:50 · 10294 阅读 · 0 评论 -
深入浅出设计模式---1、设计模式原则和分类
设计模式简介什么是设计模式软件设计模式(Software Design Pattern),俗称设计模式,设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。使用设计模式的目的是为了代码重用、让代码更容易被他人理解、保证代码可靠性。设计模式使用场景在程序软件架构设计上会使用到设计模式在软件架构设原创 2022-03-28 17:53:03 · 9821 阅读 · 0 评论