
JAVA设计模式
zxfhahaha
这个作者很懒,什么都没留下…
展开
-
【设计模式】代理模式
代理模式静态代理优缺点动态代理newProxyInstance方法Cglib代理实现步骤代理模式的变体 代理模式:为一个对象提供一个替身,以控制对这个对象的访问。 即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 被代理的对象可以是远程对象、 创建开销大的对象或需要安全控制的对象 代理模式有不同的形式, 主要有三种 静态代理、 动态代理 (JDK代理、接口代理)和 Cglib代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态原创 2020-12-04 17:04:03 · 118 阅读 · 0 评论 -
【设计模式】组合模式/部分整体模式
组合模式案例组合模式/部分整体模式原理图注意事项源码:HashMap 案例 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。 如图: 组合模式/部分整体模式 组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,**将对象组合成树状结构以表示“整体-部分”**的层次关系。 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。 这种类型的设计模式属于结构型模式。 组合模式使得用户对单个对象和组合原创 2020-12-04 13:03:50 · 373 阅读 · 0 评论 -
【设计模式】装饰者模式
装饰者模式案例装饰者模式JDK源码 案例 用装饰者模式解决的类图: 装饰者模式 装饰者模式: **动态的将新功能附加到对象上。**在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp) 装饰者模式原理 装饰者和被装饰者都继承一个抽象类, 装饰者中聚合这个抽象类(实际传入被装饰者) Component 主体 抽象类(装饰者和被装饰者都继承) ConcreteComponent 具体的主体 被装饰者 Decorator: 装饰者 装饰者中聚合 Component 属性 JDK原创 2020-12-04 10:30:36 · 70 阅读 · 0 评论 -
【设计模式】适配器模式
适配器模式适配器模式类适配器类适配器模式注意事项和细节对象适配器接口适配器源码:SpringMvc中的HandlerAdapter 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper) 适配器模式属于结构型模式 src是我们原有的接口或类,但是我们想用dst接口的方法我们没有,这时候就需要一个适配器来关联src和dst. 我们想要的是5V电压给手机充电,但现在只原创 2020-12-04 10:18:44 · 94 阅读 · 0 评论 -
【设计模式】建造者模式
建造者模式传统模式建造者模式建造者模式的四个角色解决房子思路建造者模式和工厂模式对比JDK源码:StringBuilder 盖房项目需求 需要建房子:这一过程为打桩、 砌墙、封顶 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的. 传统模式 传统方式的缺点: 过于简单,没有设计缓存层对象,程序的扩展和维护不好. 也就 是说,这种设计方案,把产品(即:房子) 和 创建产品的过程(即:建房子流程) 封装在一起,耦合性增强了。 建造者模式 将产品和产品建造过程解耦 =&原创 2020-12-02 12:13:37 · 100 阅读 · 0 评论 -
【设计模式】原型模式
原型模式原型模式浅拷贝深拷贝重写clone方法实现深拷贝通过对象序列化实现深拷贝(推荐)原型模式的注意事项和细节JDK源码 Spring创建bean 对于下面的问题: 现在有一只羊tom, 姓名为: tom, 年龄为: 1, 颜色为:白色,请编写程序创建和tom羊属性完全相同的10只羊。 原型模式 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型, 创建新的对象 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节 工作原创 2020-12-02 11:56:31 · 96 阅读 · 0 评论 -
【设计模式】工厂设计模式
工厂设计模式三种工厂模式简单工厂模式(静态工厂模式)基本介绍设计方案工厂方法模式基本介绍设计方案抽象工厂模式基本介绍设计思路JDK源码 Calendar类 通过具体的需求 看一个披萨的项目:要便于披萨种类的扩展,要便于维护 披萨的种类很多(比如 GreekPizz、 CheesePizz 等) 披萨的制作有 prepare, bake, cut, box 完成披萨店订购功能。 首先我们如果用传统的方式完成, 我们会用一个OrderPizza.java 类来根据用户输入直接new 对应的pizza ,原创 2020-12-01 23:00:36 · 161 阅读 · 0 评论 -
【设计模式】单例设计模式
单例设计模式8种单例模式饿汉式(可用,但可能造成内存浪费)静态代码块懒汉式线程不安全 的 懒汉式 (不能使用)线程安全的懒汉式 同步方法(不推荐使用,效率低)懒汉式 同步代码块(不能使用,未实现线程安全)双重检查(推荐使用)静态内部类(推荐使用)枚举(推荐使用)单例模式JDK源码分析单例模式注意事项和细节说明单例模式的使用场景 8种单例模式 单例模式:所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 单原创 2020-12-01 20:45:40 · 143 阅读 · 0 评论 -
【设计模式】UML类图
UML类图依赖泛化关系(generalization)实现关系(Implementation)关联关系(Association)单向一对一关系双向一对一关系聚合关系(Aggregation)组合关系(Composition) UML——Unified modeling language UML (统一建模语言) UML本身是一套符号的规定,就像数学 符号和化学符号一样,这些符号用于描 述软件模型中的各个元素和他们之间的 关系,比如类、接口、实现、泛化、依 赖 UML类图是UML图的一种,用于描述系统中的类原创 2020-12-01 16:24:57 · 155 阅读 · 0 评论 -
【设计模式】七大设计原则
七大设计原则单一职责原则接口隔离原则(Interface Segregation Principle)例子(违背接口隔离原则):改进:遵循接口隔离原则依赖倒转原则Dependence Inversion Principle依赖倒转原则的注意事项和细节依赖关系传递的三种方式接口传递构造方法传递setter方式传递里氏替换原则基本介绍解决方案开闭原则(Open Closed Principle)迪米特法则(Demeter Principle)/最少知道原则直接朋友注意事项合成复用原则(Composite Reu原创 2020-12-01 13:38:52 · 98 阅读 · 0 评论