![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
逻各斯与努斯
追求理性和自由
展开
-
设计模式之总览
引言设计模式是一种思想,能够巧妙的解决一些问题,让代码看起来优雅。分类设计模式按照功能可以分为三大类:创建型行为型策略型spring 中用到的9大设计模式单例模式工厂模式动态代理模版模式原型模式策略模式享员模式...原创 2019-05-25 16:27:53 · 109 阅读 · 0 评论 -
设计模式(五)-装饰模式
什么是装饰模式?装饰模式(Decorator),动态的给一个对象增加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。装饰模式类结构图...原创 2019-06-04 22:38:51 · 83 阅读 · 0 评论 -
设计模式(八)-策略模式
什么是策略模式策略模式(strategy)定义了算法家族,分别封装起来,让他们能够互相替换,此模式让算法的变化不会影响到使用算法的用户。简单来讲,策略模式就相当于指定了一个目标,有多种到达目标的方法或策略,尽管方法不同,最终结果相同。至于使用哪种策略则可以根据需要灵活选择。策略模式类结构图代码示例策略接口/** * @Author DevinLei */interface S...原创 2019-06-11 01:53:52 · 97 阅读 · 0 评论 -
设计模式(七)-观察者模式
版本原创 2019-06-09 11:52:27 · 125 阅读 · 0 评论 -
设计模式(六)-代理模式
什么是代理模式?代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。代理模式结构图:分类:静态代理动态代理jdkcglib满足代理模式应用的三个必要条件:1、两个角色:被代理对象,执行者2、注重过程,必须要做,被代理对象不想做或没时间做3、需要获取到被代理对象的信息jdk的动态代理实现原理原理:1、拿到被代理对象的引用和接口2、jdk代理重新生成一...原创 2019-06-06 00:09:13 · 147 阅读 · 0 评论 -
设计模式(三)-单例模式
什么单例模式呢?保证一个类仅有一个实例,并提供一个访问它的全局访问点。如上所述,单例模式其实就是为了确保类实例的唯一性。因此,在实现上不仅要考虑一般情形,还要考虑多线程的场景。show code单例模式的实现方式很多,下面介绍两种最佳实现(高效且线程安全)饿汉式:枚举优点:线程安全,调用效率高,不能延时加载,可以天然的防止反射和反序列化调用package design_patt...原创 2019-05-28 23:57:17 · 68 阅读 · 0 评论 -
设计模式(四)-适配器模式
适配器模式的概念原创 2019-05-30 22:11:29 · 114 阅读 · 0 评论 -
设计模式(二)-工厂方法模式
什么是工厂方法模式呢?定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类。我们已经知道简单工厂模式,在工厂类里做了分支判断,如果要新增功能,就必须修改工厂类增加分支。这种做法违背了开放-封闭原则,因为对修改也变成开放的了。而工厂方法在保留简单工厂优点的基础上弥补了简单工厂的不足。简单来说工厂方法模式包含四个部分:抽象产品:产品对象共同的接口或基类具体...原创 2019-05-27 22:35:35 · 86 阅读 · 0 评论 -
设计模式(一)-静态工厂模式
什么是静态工厂呢?静态工厂又名简单工厂。所谓静态工厂是一种生产对象的创建型模式。其特点是关注过程,通过封装具体的对象生产细节,对调用方提供统一的接口。因此,对于具体细节的修改,不会影响到调用方,体现了松耦合的设计思想。废话不多说 show me code先创建一个手机的接口 Iphonepackage design_patterns.simplefactory;/** * @Aut...原创 2019-05-27 22:33:58 · 347 阅读 · 0 评论 -
设计模式(九)-模板方法
什么是模板方法模式?模板方法(TemplateMethod),定义一个操作中的算法骨架,将一些步骤延迟到子类。模板方方法使得子类可以不改变算法结构,即可重定义算法的某些步骤。简单来说,模板方法就是定义了做事情的步骤,而这些具体的步骤会根据需求少许改变,但总的步骤结构不变。模板方法最大的优点在于将一些公共的不变的行为抽取出来以供复用,避免了代码重复。模板模式结构图:代码示例:一个洗衣服...原创 2019-06-12 01:16:25 · 69 阅读 · 0 评论