24种java设计模式总结和目录
- 简介
- 原则
- 分类
- 创建型模式
- 结构型模式
- 行为型模式
- 类图
- 参考
简介
- 设计模式是在特定环境下,为解决某一类通用软件设计问题提供的一套定制的解决方案,描述了对象和类之间的相互作用。
- 优点:
- 提供标准以供开发。方便交流,降低对复杂系统理解的难度。
- 更加简单方便的复用成功的设计。避免不可重用的方案。
- 使设计方案更加灵活,易于修改。设计模式通常满足多种面向对象的设计原则。
- 提高开发效率和软件质量。
- 有助于更加深入的理解面向对象思想,提高编码水平。
- 参考设计模式相关书籍和博客学习设计模式,使用Enterprise Architect 12绘制UML图,并结合jdk源代码这一实际应用加深理解。
原则
- 面向对象的设计原则
分类
创建型模式
创建型模式将对象的创建和使用分离,对用户隐藏对象的创建细节,从而降低耦合度。
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 建造者模式
- 原型模式
- 单例模式
结构型模式
结构型模式将现有的类或者对象组织起来,形成更强大的结构。
- 适配器模式
- 桥接模式
- 组合模式
- 装饰模式
- 外观模式
- 享元模式
- 代理模式
行为型模式
行为型模式研究运行时对象的通信和协作,进一步明确对象的职责。
- 职责链模式
- 命令模式
- 解释器模式
- 迭代器模式
- 中介者模式
- 备忘录模式
- 观察者模式
- 状态模式
- 策略模式
- 模板方法模式
- 访问者模式
类图
- Enterprise Architect 12 绘制的24种设计模式类图源文件:https://download.csdn.net/download/qq_40369829/10424648
参考
- java设计模式 刘伟
- 设计模式导学
- jdk中的设计模式
- JDK源码中使用的设计模式
24种java设计模式总结和目录相关推荐
- 【java设计模式】-00目录
开篇 [java设计模式]-01设计模式简介 创建型模式: [java设计模式]-02工厂模式(Factory Pattern) [java设计模式]-03抽象工厂模式(Abstract Factor ...
- 7种 Java 设计模式,你会几种?
为什么要学习设计模式 设计模式并不是什么新的知识,它只是一种经验的总结,所以必然是先有人这么去做了,然后才有人去总结提炼,从而变成了设计模式. 那么既然设计模式是前人总结的经验,我们何不站在巨人的肩膀 ...
- 23种java设计模式详解-代理模式
什么是代理模式: Proxy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问.所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类, ...
- java 中 statent,【行为型模式】状态模式(state)之23种java设计模式
State接口类 public interface State { void handle(); } BookedState类 /** * 已预订状态 * @author Administrator ...
- 23种java设计模式之模板模式
说实话,我们学的框架其实就是模板,是不是这样引出话题就能很快理解模板模式呢,好了,下面我们用一个经典的泡咖啡,泡茶案例来说明模板模式. 泡咖啡步骤:水烧开--->冲泡咖啡粉--->把咖啡倒 ...
- Java设计模式博客全目录
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40031567 今天来对这23种设计模式做个总结.咱使用设计模式的目的是为了可重用代码.让代 ...
- Java设计模式【之】 七大设计原则(有道有术,代码示例)
Java设计模式[之] 有道有术(设计原则,代码示例) 名词解析 1.单一职责 2.接口隔离 3.依赖倒置(面向接口编程) 4.里氏替换 5.开闭原则(ocp) 6.迪米特(好朋友原则) 7.合成复用 ...
- Java设计模式【之】工厂方法模式【场景:制作咖啡】
Java设计模式[之]工厂方法模式[场景:制作咖啡] 1.工厂方法 1.1.工厂方法模式 1.2.具体需求(生产多种咖啡) 2.代码实现 2.1.代码结构 2.2.咖啡抽象类 2.3.一种咖啡 2.4 ...
- Java设计模式——迭代器模式
概述 网上大部分人说迭代模式的时候,总是以某一种可遍历的对象为例进行介绍.这是可行的,这也是迭代模式的基本原型.当我看到<Head Frist设计模式>中迭代模式的时候,感觉要是能从另一个 ...
最新文章
- Android Studio Day03-2(常用操作)
- xcode 4.2 不再支持 Window-Based Application 的解决办法(转载)
- 在线作图丨如何绘制精美的3D饼图
- Jsoup实现Iteye自动登录
- php输出二维数组中指定内容,HP将MYSQL内容读到二维数组并按指定列输出
- 支持向量回归代码_RDKit:基于支持向量回归(SVR)预测logP
- 计算机生成兵力方法,计算机生成兵力平台体系结构技术研究
- html js 处理元素的数据属性(data)
- NBSI1.15部分源代码
- PCB LAYOUT特殊走线总结
- linux dsp开发环境,在ubuntu上搭建uclinux开发环境(转载)--- 第二篇
- 编程入门:零基础想要学好C/C++编程?那你一定要看看这五个步骤!
- 【Midjourney教程】设计麻瓜也能10分钟上架一套表情包
- TypeError: argument of type ‘NoneType‘ is not iterable
- 芝麻任务,快速获得小程序用户
- 【通知】关于SRRC认证无线电发射设备型号核准的通知
- OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
- 恶意软件XcodeGhost S:变种带来的又一波影响
- BLAST(基本局部比对工具)
- python爬虫爬取新浪网站新闻内容
热门文章
- 价位10000元的计算机配置电脑,10000元左右的计算机配置怎么配?
- Printers(一) 打印机配置信息
- 第一帖:发现一个很洋气的机器人,一个图灵机器人的小小应用
- android 短信防火墙,android 实例短信防火墙
- dota缴械技能增强
- 关于python没法pip install ocr,清华镜像也找不到ocr库
- snpEff 注释拟南芥的VCF文件
- java小米面经,小米三面面经
- 2021年集创赛“芯来RISC-V杯”等你来战!
- 魔兽后裔用计算机算伤害,谁是国服第一计算器:骚男VS魔兽后裔