![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
idealemail
这个作者很懒,什么都没留下…
展开
-
单例模式的总结
1.5种写法 饿汉式,懒汉式,双重检查,静态内部类,枚举 2.破话单例的方式 1.反射--防范方法:构造器抛出异常 2.序列化--防范方法:getResource()方法 3.单例要考虑的问题 1.线程安全,2调用效率3.延时加载原创 2017-01-16 22:19:13 · 227 阅读 · 0 评论 -
观察者模式
观察者模式 角色: 1.发布者接口 2.发布者实现类, 持有观察者接口的集合,可以通知和调用所有的观察者的方法 注册方法,可以在发布者注册观察者 3.观察者接口 4.观察者实现类, 发布者发布信息后观察者接受信息或者改变原创 2017-01-27 17:30:33 · 176 阅读 · 0 评论 -
状态模式
状态模式 角色 1.Context对象,持有State类.不同的State下功能不同 2.State接口,定义通用方法 3.Sate实现类,不同的State代表不同状态,相同的方法可以有不同的操作原创 2017-01-27 17:13:48 · 232 阅读 · 0 评论 -
中介者模式
中介者模式 需要调用多个相似的或一组类中的一个,采用中介这可以简化客户端调用,由中介者来帮助调用 角色: 1.同事类接口 2.下面多个同事类 3.中介者类,持有所有同事类,根据需求调用特定的同事类 4.客户端直接调用中介者类,中介者类根据需要调用相应的同事类原创 2017-01-27 16:41:30 · 219 阅读 · 0 评论 -
责任链模式
责任链模式 普通写法采用if...else...或者switch case,不好维护和扩展,不符合开闭原则 责任链模式: 1.接口 2.根据if...else...写多个实现类,每个实现类持有一个下级接口 3.请求来了以后,依次往下传递 客户端调用简单.原创 2017-01-27 16:16:12 · 241 阅读 · 0 评论 -
享元模式
享元模式原创 2017-01-26 11:43:44 · 176 阅读 · 0 评论 -
外观模式
外观模式原创 2017-01-27 15:42:21 · 164 阅读 · 0 评论 -
组合模式
组合模式原创 2017-01-27 15:26:58 · 167 阅读 · 0 评论 -
桥接模式
目的:解决多维度影响产品的情况,解决多继承下类的急剧扩张 eg: cpu接口下有Inter和Amd两个实现类 Computer类持有Cpu Lenovo和Dell继承Computer 这样Cpu可以随意扩展,Computer品牌也可以随意扩展,不会引起子类的过多扩张 没有桥接模式,如果是3纬组成产品,3*4*5种组件 如果第一种增加一种,则子类增加4*5种子类原创 2017-01-26 11:41:16 · 191 阅读 · 0 评论 -
动态代理
动态代理,动态的创建代理类 1.接口Interface 2.实现类Target 3.Handler类:TargetHandler 实现InvocationHandler,持有Target对象 invoke方法中调用target的方法 4.使用: 生成代理类,使用Proxy.newProxyInstance方法 调用代理类的相关方法即可原创 2017-01-25 21:31:27 · 168 阅读 · 0 评论 -
静态代理
静态代理 使用: 接口Interface,方法Method 实现类Target实现Interface,是实际上起作用的类,起作用的方法Method 代理类Daili也实现Interface,持有Target,在Daili的对象,在Method方法中,调用需要的各种方法,然后调用Target的Method原创 2017-01-25 21:27:12 · 190 阅读 · 0 评论 -
适配器模式
适配器模式适用于,借口转换 案例 Client需要Interface1接口的实现类 现在有Interface2接口和实现类 新建Adapter类实现Interface1,持有Interface2的实现类对象,在相关的方法中调用需要的方法 这样可以给Client传入Adapter,满足Client接口需要,同时提供了Interface2的服务原创 2017-01-25 20:42:43 · 176 阅读 · 0 评论 -
原型模式
原型模式的目的 1.创造和目标对象一样的对象 2.快速创建对象 方法: 1.克隆,要实现Clonable接口,重写clone方法 要注意浅克隆和深克隆的区别 2序列化,反序列化,要实现Serilaziable接口 注意,瞬间变量不能序列化 序列化可以读取getResource方法原创 2017-01-25 19:21:39 · 175 阅读 · 0 评论 -
构建者模式
构建者模式用来组装复杂对象原创 2017-01-25 19:18:57 · 175 阅读 · 0 评论 -
抽象工厂模式
1.目的 创建对象,由工厂生产对象 2.适用情况 产品族的概念 3.eg: 好轮胎,普通轮胎 好座椅,普通座椅 以上2个产品族,组成4个产品 高端车:好轮胎+好座椅 普通越野:好轮胎+普通座椅 普通商务:普通轮胎+好座椅 低端车:普通轮胎+普通座椅 4.涉及的接口和类 接口:轮胎,座椅,工厂 类:两种轮胎类,两种座椅类,2个工厂类分别生产轮胎和座椅原创 2017-01-24 21:20:50 · 173 阅读 · 0 评论 -
简单工厂和方法模式
1.目的 这两个模式的目的是生产产品,也就是new对象,由工厂new对象,减轻了客户端new对象的复杂度,达到低耦合,高内聚 2.涉及的接口和类 两个接口:产品接口和工厂接口 两组实现类:产品的实现类和工厂的实现类 3.eg: 简单工厂 car接口 Benz实现类 Byd实现类 EasyFactory接口 Factory实现类:实现类写法1.通过传入的字符串new相原创 2017-01-24 21:00:23 · 222 阅读 · 0 评论 -
策略模式
策略模式 一般算法都是和客户端耦合的,通过策略模式和客户端解耦 1.算法接口 2.各种算法实现类 3.Context类,上下问对象,持有算法类 客户端调用Context 类,Context类调用算法类.原创 2017-01-27 17:38:39 · 194 阅读 · 0 评论