设计模式
文章平均质量分 61
「已注销」
这个作者很懒,什么都没留下…
展开
-
设计模式-模板方法
在代码结构上: 1 一个抽象类:不是接口 因为里面有个实现方法,多个抽象方法 2 这个抽象类里有一个主方法:cook(), 3 主方法里面包含几个共性的固定的抽象方法(getRice(),fry(),getOut()),并且顺序一定的。 4 用户访问类DanChaoFanCooker里面依赖关联这个抽象类。 这边引用:https://www.cnblogs.com/08shiyan/p/49...原创 2018-08-20 14:16:38 · 154 阅读 · 0 评论 -
设计模式-策略Strategy(算法)
很常见的一种算法: 1 不使用这个模式我们是怎么做的? 比如针对会员有多个算法,v1,v2,v3,简单就是一个业务类XxxBiz里面写三个if else就可以了。简单直接高效。 但是要是作为jar包供第三放使用,你是无法修改这个类的。如何处理?引入万能的接口啊。 XxxBiz里面引用这个算法接口IStrategy,if else里面的多个算法用多个实现类来实现 V1Strate...原创 2018-10-24 10:15:05 · 216 阅读 · 0 评论 -
设计模式-适配器 adapter
来简单实现springmvc 先来2个接口,Adapter--[关联]--> Controller public interface Controller { //抽象的业务方法 处理http请求和响应 并返回 ModelAndView //由不同的实现类去实现 ModelAndView handleRequest(String request, String ...原创 2018-10-23 15:15:41 · 123 阅读 · 0 评论 -
设计模式-代理proxy
类似生活中的代购、中介,为什么会有他们,因为他们在他们的领域是专业高效的,比起你(调用方)自己去直接 调用目标类,更高效、解耦。 设计的概念:调用者client、目标target、代理proxyTartget 共三个概念 特点:简单 设计的类很少 代理也分类:静态代理 、动态代理。看名字也知道动态的牛逼。 1 静态代理-按代理对象的生成方式是继承类还是实现接口,所以代码实现有分为2种 都...原创 2018-10-23 11:36:24 · 121 阅读 · 0 评论 -
设计模式-单例模式
本来不想写这篇的,以为这模式很简单,平时最常用的模式之一。但是昨天面试我回答的却很不好。 为什么叫“单例”,就是整个JVM里面这个对象只有唯一的一个。这个理论“道”的层面。 场景:比如项目里唯一的一个管理员,数据库实例,redis实例、用于创建bean对象的工厂... 如何实现(“术”的层面):只要能实现唯一的一个对象,禁止多次new XXX,所以方法很多....。下面是经典的方法: 1 ...原创 2018-10-18 17:54:26 · 107 阅读 · 0 评论 -
设计模式-建造者模式
-建造者:不同的对象,动态设置不同的属性 通过返回设置后的当前对象。如JDK里面的StringBuilder 抽象一个方法append(...) 面向对象的举例:装修房子厨房,你需要的一些属性(对象)热水器 、燃气灶、灯、水槽等等。 这些属性创建时都预留了位置,你需要上面就可以放进去啥,然后每个东西的颜色什么的都可以自由选择。 最后不同的人装修出来不同的厨房。 public...原创 2018-10-18 17:53:36 · 101 阅读 · 0 评论 -
设计模式-原型模式
大白话就是复制、克隆模式。生活场景就是,比如 现在我写的文章分了 1 2 3 模板结构,那我再写篇新的时候就想复用这个模板。 类似的就是word execl的复制。 用的技术实现:克隆(深拷贝、浅拷贝) /* @desc 使用Object 的clone() 必须实现 Cloneable 接口 */ public class WeeklyLog implements Cloneable...原创 2018-10-18 17:53:08 · 103 阅读 · 0 评论 -
设计模式-工厂模式
创建多个对象时考虑适用。依葫芦画瓢<(* ̄▽ ̄*)/ 分类:简单工厂(也叫静态工厂)、工厂方法(解决新增产品需要修改工厂类的缺点)、抽象工厂 一 简单工厂-一个工厂类 1 public class DrinkFactory { /** * 工厂根据传入的参数来管理创建对象 * 缺点:新增饮品,需要修改该工厂类 * * @param ...原创 2018-10-18 16:34:17 · 96 阅读 · 0 评论 -
设计模式概述
就像物理 数学公式一样。比如几何,分析后知道用那个、那些公式来解决该问题。 模式也就是套用模板,类似习题做多了,也就有感觉了。 缺点:因为要职责分离 独立等需要拆分类、类里面的方法,会引入接口,这样会增加很多的类。 因为增加了很多类,还有层级,看代码的时间其实也是增加了(可读性还是进步了)。 不要滥用,不要滥用,不要滥用。公司的很多业务代码都可以按照设计模式来修改,但是代码复杂度,类的数量...原创 2018-09-03 17:34:40 · 249 阅读 · 0 评论 -
设计模式-桥接bridge
1 使用场景 存在两个(多个)独立变化的维度,且这两个维度都需要进行扩展。 一般这2个变化的对象有一个主从关系。从的是依附的,没有不影响主的最基本的使用。 2 代码结构 上面的主就是一个抽象类,里面关联从的变化对象。从是接口。 3 举例 画图软件。先画出形状,为了丰富功能需要着色、音效等。 代码实现: /** * 2个(多个)变化的维度 形状和颜色 ...原创 2018-08-23 11:18:39 · 99 阅读 · 0 评论 -
设计模式-dubbo
最近在看dubbo源码,发现一个设计模式用的很多。 代码结构就是:subClass(N)-->abstract(1)-->interface(1); 中间一个抽象类可以包含一些公共方法等。 那这个模式是模板方法还是策略模式呢? https://www.cnblogs.com/08shiyan/p/4989203.html 代理 负载算法时: ...原创 2018-10-24 11:54:39 · 311 阅读 · 0 评论