设计模式
持续更新并修改已发布的博客
玉爷~
技术学的好,讨饭讨到老。
展开
-
装饰者模式
设计模式:专门为解决某一类问题,而编写的固定格式的代码。 装饰者模式 一、职责 1、动态的为一个对象增加新的功能 2、装饰模式是一种用于替代继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。 二、实现细节 1、Component抽象构件角色: 真实对象和装饰对象有相同的接口。这样,客户端对象就能够以与真实...原创 2020-04-11 14:44:17 · 369 阅读 · 1 评论 -
建造者模式
当一个类有各种复杂的属性时,创建该类的对象就比较麻烦,这个时候就可以使用建造者模式;创建一个专门构建该对象的类。 核心本质: (1)分离了对象子组件的单独构造(由Builder来负责)和装配(由Director负责)。 从而可以构 造出复杂的对象。 (2)由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象; 相同的构建器,不同的装配顺序也可以做出不同的对象。...原创 2019-07-27 11:14:48 · 93 阅读 · 0 评论 -
工厂模式
核心本质: 实现了创建者和调用者的分离。 实例化对象,用工厂方法代替new操作。 将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。 面向对象设计的基本原则: (1)OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。 (2)DIP(依赖倒转原则,Dependence Inversion Principle...原创 2019-07-27 11:12:13 · 209 阅读 · 0 评论 -
代理模式
核心作用: 通过代理,控制对对象的访问。可以详细控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。 代理也是AOP(Aspect Oriented Programming面向切面编程)的核心实现机制! AOP(Aspect-Oriented Programming,面向切面的编程) – 它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况...原创 2019-07-27 11:43:54 · 74 阅读 · 0 评论 -
适配器模式
什么是适配器模式? – 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 • 模式中的角色 – 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 – 需要适配的类(Adaptee):需要适配的类或适配者类。 – 适配器(Adapter):通过包装一个需要适配的对象,把原接...原创 2019-07-27 11:18:08 · 75 阅读 · 0 评论 -
原型模式
原型模式实现: – Cloneable接口和clone方法 – Prototype模式中实现起来最困难的地方就是内存复制操作,所幸在Java中提供了 clone()方法替我们做了绝大部分事情。 cloneable接口是一个空接口、标记接口。要给一个类添加clone方法的话,必须实现Cloneable接口,这是一个规范 clone是Object中的方法,是一个native方法,调用的...原创 2019-07-27 11:16:43 · 78 阅读 · 0 评论 -
动态代理
1、什么是代理? 静态代理:必须创建一个中间类包装目标类,共同实现统一接口。 缺点:目标类添加一个方法,中间代理类就必须手动添加一个方法,所有就有了动态代理。 2、动态代理 动态代理:不用手动编写一个代理对象,不需要一一编写与目标对象相同的方法,这个过程,在运行时 的内存中动态生成代理对象。------字节码对象级别的代理对象 动态代理的API: 在jdk的API中存在...原创 2019-04-12 01:28:22 · 81 阅读 · 0 评论 -
单例模式
核心作用:保证一个类只有一个实例,并提供一个访问该实例的全局访问点。 常见应用场景: – Windows的Task Manager(任务管理器)就是很典型的单例模式 – windows的Recycle Bin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。 – 项目中,读取配置文件的类,一般也只有一个对象。没有必要每次使用配置文件数据,每次new...原创 2019-07-26 17:28:44 · 190 阅读 · 0 评论