设计模式
淇水汤汤
众生皆苦,但我是草莓味的。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java学习笔记之--------责任链模式
责任链模式将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。场景打牌时,轮流出牌;接力赛跑;大学中,奖学金审批;公司中,公文审批。常见的公司内的请假审批流程:如果请假天数小于3天,主任审批;如果请假天数大于等于3天,小于10天,经理审批;如果大于等于10天,小于30天,总经理审批;如...原创 2020-01-09 18:26:16 · 263 阅读 · 0 评论 -
Java学习笔记之--------享元模式
场景内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或者相似的对象,我们可以通过享元模式来节省内存。享元模式核心享元模式以共享的方式高效的支持大量细粒度对象的重用。享元对象能够做到共享的关键是区分了内部状态和外部状态。内部状态:可以共享,不会随环境变化而变化;外部状态:不可以共享,会随环境变化而变化。享元模式实现FlyweightFactory享元工厂类:创建并管理享元...原创 2020-01-07 18:29:07 · 174 阅读 · 0 评论 -
Java学习笔记之--------外观模式
迪米特法则了解外观模式之前,先加深一下对迪米特法则的印象:迪米特法则也叫最少知道原则:一个软件应当尽可能少的与其他实体发生相互作用。相关场景如果我们自己泡茶,需要自己准备开水、茶叶、茶具,然后再亲自动手泡茶。如果我们去到茶馆里面,我们只需要跟服务员联系,然后由服务员去完成其他的工作,我们就可以喝到一壶热茶。如果需要注册一个公司,我们需要自己按照流程,工商局、质检局、税务局、银行,都...原创 2020-01-07 17:57:35 · 166 阅读 · 0 评论 -
Java学习笔记之--------装饰模式
装饰模式职责动态的为一个对象增加新的功能。装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。实现细节Component抽象构件角色:真实对象和装饰对象有相同的接口。这样,客户端对象就能够以与真实对象相同的方式同装饰对象交互。Concrete Component具体构件角色(真实对象)...原创 2020-01-04 16:03:01 · 189 阅读 · 0 评论 -
Java学习笔记之--------组合模式
使用组合模式的场景把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。(组合模式和组合不同,组合是在A类中定义一个B类,A拥有了B的属性和方法。)组合模式核心抽象组件(Component)角色:定义了叶子和容器构件的共同点。叶子(Leaf)构件角色:无子节点。容器(Composite)构件角色:有容器特征,可以包含子节点。组合模式dem...原创 2020-01-02 17:42:00 · 211 阅读 · 1 评论 -
Java学习笔记之--------桥接模式
桥接模式的场景商城系统中常见的商品分类,以电脑为例,如何良好的处理商品分类销售的问题?我们可以用多层继承结构来实现下图的关系。实现多层继承结构之后的类图如下:但是用继承实现会存在一些问题:1.扩展类问题(类个数膨胀问题):如果需要增加一个新的电脑类型:智能手机,则要增加各个品牌下面的类;如果要增加一个新的品牌,也要增加各种电脑类型的类。2.违反单一职责原则:一个类,...原创 2020-01-02 15:19:02 · 175 阅读 · 0 评论 -
Java学习笔记之--------代理模式
代理模式核心作用通过代理,控制对象的访问。可以详细控制某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理,即AOP的微观实现。代理模式是AOP(Aspect Oriented Programming 面向切面编程)的核心实现机制。核心角色抽象角色:定义代理角色和真实角色的公共对外方法。真实角色:实现抽象角色,定义真实角色所需要实现的业务逻辑,供代理...原创 2019-12-27 14:25:49 · 192 阅读 · 0 评论 -
Java学习笔记之--------适配器模式
适配器模式生活中经常遇到这样的场景,比如我们现在的Type-C接口充电的手机,只提供一个Type-C接口用来充电,那么我们如何插入我们的耳机呢?每部手机都会配套一个转接线,转接线一端可插入Type-C接口,一端提供了耳机插孔。这样我们的手机就可以连接线式耳机了。将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。模式...原创 2019-12-24 14:28:28 · 184 阅读 · 0 评论 -
Java学习笔记之--------原型模式
原型模式通过new产生一个对象需要非常繁琐的数据准备或者访问权限,可以使用原型模式。原型模式就是Java中的克隆技术,以某个对象为原型,复制出新的对象。显然,新的对象具备原型模式的特点。原型模式的优势:效率高(直接克隆,避免了重新执行构造过程步骤)。克隆和new类似,但是不同于new。new创建新的对象属性用的是默认值,克隆出的对象的属性值完全和原型对象相同。并且克隆出的新对象改变不会影响...原创 2019-12-18 18:34:22 · 369 阅读 · 0 评论 -
Java学习笔记之--------建造者模式
使用场景我们需要构建一个复杂的产品。比如:电脑,手机,飞船。这个复杂产品的创建,有这样一个问题需要处理:装配子组件是不是需要特定的步骤?实际开发中,我们所需要的对象构建时,也非常复杂,有很多步骤需要处理时,我们就可能需要想到建造者模式。建造者模式的本质建造者模式又称生成器模式,建造者模式分离了对象子组件的单独构造(由builder来负责)和装配(由director负责)。从而可以构...原创 2019-12-18 16:15:54 · 211 阅读 · 0 评论 -
Java学习笔记之--------抽象工厂模式
抽象工厂模式抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。抽象工厂模式用来生产不同产品族的全部产品(对于新增加的产品无能为力,支持增加产品族)。抽象工厂模式是工厂方法模式的升级版本,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。抽象工厂模式demopublic interface Engine { vo...原创 2019-12-18 15:14:45 · 217 阅读 · 0 评论 -
Java学习笔记之--------工厂方法模式
不使用工厂模式我们现在有一个汽车方法,实现如下:public interface Car { void run();}public class Audi implements Car { @Override public void run() { System.out.println("奥迪在跑"); }}public class Byd implements...原创 2019-12-17 16:23:16 · 238 阅读 · 0 评论 -
Java学习笔记之--------单例模式(二)
单例模式存在的问题1.反射可以破解单例模式。2.反序列化可以破解单例模式。注:上面的单例模式不包括枚举实现单例模式。反射破解单例模式我们以懒汉式为例。public class SingletonDemo06 { private static SingletonDemo06 instance; private SingletonDemo06(){ /*if (i...原创 2019-09-24 16:34:59 · 264 阅读 · 0 评论 -
Java学习笔记之--------单例模式(一)
单例模式的核心作用保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。单例模式的应用场景Windows的Task Manager(任务管理器)。Windows的Recycle Bin(回收站)。在整个系统运行过程中,回收站一直维护着仅有的一个实例。项目中,读取配置文件的类,一般也只有一个对象。没有必要每次使用配置文件数据,都new一个对象去读取。网站的计数器,一般也...原创 2019-09-19 19:49:52 · 363 阅读 · 0 评论 -
Java学习笔记之--------代理模式
代理模式代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。组成:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色:实现抽象角色,定义真实角色所要实现的...原创 2018-10-08 14:35:08 · 201 阅读 · 0 评论 -
设计模式
设计模式1. 设计模式设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。2. 设计模式的分类通常的设计模式可以概括为23种,按照特点可以将其分为三大类型:创建型、结构型、行为型...原创 2018-10-08 14:33:31 · 122 阅读 · 0 评论
分享