设计模式
文章平均质量分 55
zjj582984208
这个作者很懒,什么都没留下…
展开
-
建造者模式
建造者模式: 本质:分离了对象子组建的单独构造(Builder来负责)和装配(由Director负责),从而构造出复杂的对象。适用于某个对象的构建过程复杂的情况下。 2 由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象,也就实现了构建算法,装配算法的耦合,实现了更好的复用。 package builder; //构原创 2017-03-20 16:01:57 · 269 阅读 · 0 评论 -
原型模式
原型模式(克隆模式):1通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式 2 以某个对象为原型,复制新的对象。避免了重新执行构造过称步骤 3 克隆出的新对象不会改变原型对象,然后再修改克隆的值;new创建的对象属性采用的是默认值 实现:Cloneable接口和Clone()方法 浅克隆:复制之后,若s1的属性改变,则s2的属性也会改变 package原创 2017-03-20 16:05:53 · 246 阅读 · 0 评论 -
适配器模式
适配器(adapter)模式:将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。 模式中的角色:1 目标接口:客户期待的接口。可以是具体的或抽象的类,也可以是接口 2 需要适配的类:需要适配的类或者适配者类 3 适配器:通过包装一个需要适配的对象,把原接口转换成目标接口 场景:原创 2017-03-20 16:36:22 · 230 阅读 · 0 评论 -
桥接模式
核心要点:处理多继承结构,处理多维变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。 可以取代多层继承的方案。极大减少子类的个数,从而可以极大的减少子类的个数 极大的提高了系统可扩展性,在两个变化的维度中任意扩展一个维度,都不需要修改原系统。 代码: package Bridge; /** * 品牌维度 * *原创 2017-03-22 10:06:15 · 289 阅读 · 0 评论 -
代理模式
核心作用:通过代理,控制对对象的访问,可以详细控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理 核心角色: 抽象角色:定义代理角色和真实角色的公共对外方法 真实角色:实现抽象角色,定义真实角色所需要的业务逻辑,供代理角色调用 代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑来实现抽象方法,并原创 2017-03-21 21:59:56 · 212 阅读 · 0 评论 -
单例模式
核心:保证一个类只有一个实例(对象),并且提供一个访问该实例的全局访问点 单例模式注意的点:线程安全,调用效率高,懒加载 实现方式有五种: 1 饿汉式:线程安全,调用效率高,不能延时加载 //饿汉式实现单例模式 public class SingletonDemo1 { //类初始化时,立即加载对象(没有延时加载的优势)。加载类时,天然的是线程安全的! private stat原创 2017-03-15 15:53:50 · 224 阅读 · 0 评论 -
工厂模式
工厂模式(实现了创建者与调用者的分离) 核心本质:实例化对象,用工厂方法代替new操作;将选择实现类、创建对象统一管理和控制,从而将调用者跟我们的实现类解耦。 分类 1 简单工厂模式:用来生产同一等级结构中的任意产品,只有一个工厂类。也叫静态工厂模式,就是工厂类一般使用静态方法,通过接受的参数来返回不同的对象实例(缺点:对于增加新的产品,需要修改已有代码,违反了开闭原则)原创 2017-03-17 12:17:35 · 246 阅读 · 0 评论