
23种设计模式
文章平均质量分 65
夕颜3010
这个作者很懒,什么都没留下…
展开
-
十三、java设计模式之模式(行为型设计模式)
观察者模式应用场景消息通知里面:邮件通知、广播通知、微信朋友圈、微博私信等,就是监听观察事件当一个对象的改变需要同时改变其它对象,且它不知道具体有多少对象有待改变的时候,考虑使用观察者模式角色业务需求编码运行效果 优点缺点...原创 2022-06-09 09:56:24 · 270 阅读 · 0 评论 -
十二、java设计模式之模板方法设计模式(行为型设计模式)
模板方法模式Template Method应用场景角色抽象模板(Abstract Template): 定义一个模板方法,这个模板方法一般是一个具体方法,给出一个顶级算法骨架,而逻辑骨架的组成步骤在相应的抽象操作中,推迟到子类实现模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法基本方法:是整个算法中的一个步骤,包括抽象方法和具体方具体模板(Concrete Template):实现父类所定义的一个或多个抽象方法,它们是一个顶级算法逻辑的组成步骤 编码实战运行效果 优点提高代码复用性 将相同部原创 2022-06-06 10:59:54 · 144 阅读 · 0 评论 -
十一、java设计模式之策略设计模式(行为型设计模式)
策略模式(Strategy Pattern)应用场景角色编码实战运行结果 优点缺点JDK源码的应用原创 2022-06-06 10:45:46 · 176 阅读 · 0 评论 -
十、java设计模式之享元设计模式(结构型设计模式)
享元设计模式(Flyweight Pattern)应用场景内部状态外部状态角色代码如下 运行结果如下优点缺点享元设计模式和原型、单例模式的区别原创 2022-06-05 19:49:22 · 133 阅读 · 0 评论 -
九、java设计模式之外观设计模式(结构型设计模式)
外观设计模式 Facade Pattern应用场景角色代码如下运行效果如下 优点减少了系统的相互依赖,提高了灵活性符合依赖倒转原则符合迪米特法则缺点原创 2022-06-05 19:32:42 · 122 阅读 · 0 评论 -
八、java设计模式之代理设计模式(结构型设计模式)
代理设计模式(Proxy Pattern)为其他对象提供一种代理以控制对这个对象的访问,属于结构型模式。客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象应用场景角色 运行结果如下 优点缺点静态代理和动态代理两种和装饰器模式的区别:代理模式主要是两个功能...原创 2022-06-05 19:21:40 · 96 阅读 · 0 评论 -
七、java设计模式之装饰器设计模式(结构型设计模式)
装饰器设计模式(Decorator Pattern)角色(装饰者和被装饰者有相同的超类(Component))抽象组件(Component)被装饰者(ConcreteComponent)装饰者组件(Decorator)定义具体装饰者的行为规范, 和Component角色有相同的接口,持有组件(Component)对象的实例引用自行车组件 都有 名称和价格具体装饰物(ConcreteDecorator)装饰器设计模式案例实战main方法代码 优点缺点装饰器模式和桥接模式对比相同点都是通过封装其他对原创 2022-06-05 19:10:08 · 153 阅读 · 0 评论 -
六、java设计模式之组合设计模式(结构型设计模式)
组合设计模式应用场景角色组合部件(Component):它是一个抽象接口,表示树根,例子:总行合成部件(Composite):和组合部件类似,也有自己的子节点,例子:总行下的分行叶子(Leaf):在组合中表示子节点对象,注意是没有子节点,例子:最小地方的分行代码如下 main方法中的代码运行效果如下 总结:缺点优点...原创 2022-06-05 18:51:52 · 113 阅读 · 0 评论 -
五、java设计模式之桥接模式(结构型设计模式)
桥接设计模式应用场景业务背景代码如下 优点缺点总结和对比按GOF的说法,桥接模式和适配器模式用于设计的不同阶段,适配器模式经常用在第三方API协同工作的场合,在功能集成需求越来越多的今天,这种模式的使用频度越来越高,包括有些同学听过 外观设计模式 ,这个也是某些场景和适配器模式一样原创 2022-06-01 10:29:10 · 123 阅读 · 0 评论 -
四、java设计模式之适配器模式(结构型设计模式)
适配器模式(Adapter Pattern)见名知意,是作为两个不兼容的接口之间的桥梁,属于结构型模式适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作常见的几类适配器类的适配器模式想将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类,实现新的接口即可对象的适配器模式接口的适配器模式JDBC给出一个客户端通用的抽象接口,每一个具体数据库厂商 如 SQL Server、Oracle、MySQL等,就会开发JDBC驱动,就是一个介于JDBC接口和数据库引擎原创 2022-06-01 09:59:09 · 164 阅读 · 0 评论 -
三、java设计模式之建造者+原型模式(创建型设计模式)
原型设计模式Prototype:应用场景:拓展:通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的浅拷贝实现 Cloneable,深拷贝是通过实现 Serializable 读取二进制流浅拷贝 深拷贝原型模式是内存二进制流的拷贝,比new对象性能高很多,使用的时候记得注意是选择浅拷贝还是深拷贝优点缺点代码如下运行结果如下 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象,将一个复杂对象的构建与它的表示分离,使得同样的构建过原创 2022-06-01 09:22:18 · 183 阅读 · 0 评论 -
二、java设计模式之工厂方法+抽象工厂模式(创建型设计模式)
创建型设计模式-工厂模式和应用工厂模式介绍:它提供了一种创建对象的最佳方式,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象例子:需要购买一辆车,不用管车辆如何组装,且可以购买不同类型的比如轿车、SUV、跑车,直接去4s店购买就行(4s店就是工厂) 工厂生产电脑,除了A品牌、还可以生产B、C、D品牌电脑 业务开发中,支付很常见,里面有统一下单和支付接口,具体的支付实现可以微信、支付宝、银行卡等工厂模式有 3 种不同的实现方式简单工厂模式:通过传原创 2022-05-31 19:59:01 · 301 阅读 · 0 评论 -
一、java设计模式之单例设计模式(创建型设计模式)
创建型设计模式-单例设计模式和应用单例设计模式:这个是最简单的设计模式,所以拎出来第一个讲, 但事实却不是。 单例意思只包含一个对象被称为单例的特殊类 通过单例模式可以保证系统中,应用该模式的类只有一个对象实例使用场景:业务系统全局只需要一个对象实例,比如发号器、redis连接对象等 Spring IOC容器中的bean默认就是单例 spring boot 中的controller、service、dao层中通过@autowire的依赖注入对象默认都是单例的分类:懒汉:就是所谓.原创 2022-05-31 18:59:55 · 161 阅读 · 0 评论