Java设计模式陈列
为什么80%的码农都做不了架构师?>>>
我们并不需要自己造轮子。这么多年以来,遭遇同样问题的人们早已发现了许多很棒的解决方案,而且把它们标准化过了。我们管这些方案叫设计模式。 --《我给媳妇解释设计模式》
设计模式详细的介绍和解读可以寻址:
- 设计模式百度词条
- CSDN终点博客 -- Java之美[从菜鸟到高手演变]之设计模式
- 知乎 中大家对设计模式的见解
- 翻译 -- 我给媳妇解释设计模式
- 用追MM来解释23种设计模式
一、设计模式分类
设计模式总共分三大类:
1 创建型模式:
1.1 工厂方法模式:
1.1.1 普通工厂方法模式:
1.1.2 多个工厂方法模式:
1.1.3 静态工厂方法模式:
1.2 抽象工厂模式:
1.3 单例模式:
1.3.1 懒汉式单例
影子实例:
1.3.2 饿汉式单例
1.4 建造者模式:
1.5 原型模式:
1.5.1 浅复制:
1.5.2 深复制:
2 结构型模式:
2.1 适配器模式:
2.1.1 类的适配器模式:
2.1.2 对象的适配器模式:
2.1.3 接口的适配器模式:
2.2 装饰型模式:
2.3 代理模式:
2.4 外观模式:
2.5 桥接模式:
2.6 组合模式:
2.7 享元模式:
3 行为型模式:
3.1 父类与子类之间
3.1.1 策略模式:
3.1.2 模版方法模式:
3.2 两个类之间
3.2.1 观察者模式:
3.2.2 迭代子模式:
3.2.3 责任链模式:
3.2.4 命令模式:
3.3 类的状态
3.3.1 备忘录模式:
3.3.2 状态模式:
3.4 中间类
3.4.1 访问者模式:
3.4.2 中介者模式:
3.4.3 解释器模式:
二、设计模式的原则
1 开闭原则
2 里氏代换原则
3 依赖转换原则
4 接口倒转原则
5 迪米特法则(最少知道原则)
6 合成复用原则
转载于:https://my.oschina.net/reone/blog/781980
Java设计模式陈列相关推荐
- Java设计模式(10)代理模式(Proxy模式)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...
- java备忘录模式应用场景_图解Java设计模式之备忘录模式
图解Java设计模式之备忘录模式 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态. ...
- JAVA 设计模式 模板方法模式
定义 模板方法模式 (Template Method) 定义了一个操作中的算法的骨架,而将部分步骤的实现在子类中完成. 模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 模 ...
- Java设计模式之策略模式与状态模式
一.策略模式定义 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们之间可以相互替换,策略模式可以在不影响客户端的情况下发生变化. 好了,定义看看就完了,我知道你很烦看定义. 二.策 ...
- JAVA 设计模式 享元模式
用途 享元模式 (Flyweight) 运用共享技术有效地支持大量细粒度的对象. 享元模式是一种结构型模式. 结构 图-享元模式结构图 Flyweight : 它是所有具体享元类的超类或接口,通过这个 ...
- java设计模式 观察者模式_理解java设计模式之观察者模式
在生活实际中,我们经常会遇到关注一个事物数据变化的情况,例如生活中的温度记录仪,当温度变化时,我们观察它温度变化的曲线,温度记录日志等.对于这一类问题,很接近java设计模式里面的"观察者模 ...
- Java设计模式-七大设计原则
Java设计模式 设计模式七大原则 设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好 代码 ...
- Java设计模式(备忘录模式-解释器模式-状态模式-策略模式-职责链模式)
Java设计模式Ⅶ 1.备忘录模式 1.1 备忘录模式概述 1.2 代码理解 2.解释器模式 2.1 解释器模式概述 3.状态模式 3.1 状态模式概述 3.2 代码理解 4.策略模式 4.1 策略模 ...
- Java设计模式(访问者模式-迭代器模式-观察者模式-中介者模式)
Java设计模式Ⅶ 1.访问者模式 1.1 访问者模式概述 1.2 代码理解 2.迭代器模式 2.1 迭代器模式概述 2.2 代码理解 3.观察者模式 3.1 观察者模式概述 3.2 代码理解 4.中 ...
最新文章
- DotNetTextBoxV3.0在线编辑器控件Ver3.4.2 Open Source开源版
- 【数理知识】《数值分析》李庆扬老师-目录
- 深入理解java注解,java的4个元注解,注解三要素——定义、使用及读取执行,深入了解注解的底层本质,通过反射自动、动态获取注解所有属性以及属性值
- requestanimationframe_requestAnimationFrame详解以及无线页面优化
- 0基础自学前端好,还是报班培训好?
- Hbase Scan类 ResultScanner类
- 解决Eclipse 64位启动时,报jvm.dll错
- Luogu5629 【AFOI-19】区间与除法
- 90后凤凰男:寒门难出贵子
- 编码技巧——全局异常捕获统一的返回体业务异常
- 初始化mysql5.7.18_MySQL5.7.18,初始化完成登录,提示密码过
- 怎样通过一根网线,一台电脑,做到月入过万。
- 我们为什么需要信息增益比,而不是信息增益?
- 从零到一实现复杂表格需求(antd table 合并行 合并列)
- 鸿图霸业nbsp;谁与争锋
- ExternalException (0x80004005): 无法执行程序
- 用c#开发微信 (15) 微活动 1 大转盘
- java/php/net/python互联网 智慧云诊所管理系统设计
- 用Python+PIL将目录下jpg图像批量转成pdf文件
- STC系列单片机软件延时,ms级较精确
热门文章
- Java实现二分查找法
- Spring Boot——2分钟构建spring web mvc REST风格HelloWorld
- java 读取pdf、word、Excel文件
- Ubuntu技巧之xxx is not in the sudoers file解决方法
- java如何获取tree_如何从javac插件获取memberselecttree中的表达式类型?
- oracle job 及存储过程案例
- android中的Filter接口简介
- 《『若水新闻』客户端开发教程》——03.设计新闻分类UI(1)
- 响应式编程在Android 中的一些探索
- Spring-Cloud-Config消息总线和高可用