大话设计模式宏观总结——创建型&结构型&行为型
师傅验收项目的时候。问大话设计模式那三种类型的差别和联系是什么,顿时我傻了眼。由于除了知道这三种类型分别如何称呼以外。从来都没想过为什么这样划分?于是,我便回答:我没想过这个问题。若是从字面上来理解的话,创建型应该负责的框架,结构型负责的应该是内部结构吧~然后师傅没说对错。仅仅是说,无论自己是如何理解的。都要学会去验证~
然后,我非常自觉地开启了新的一篇博客总结之旅~
导图
创建型模式
结构型模式
行为型模式
分类总结
我们通常依据两条准则对模式进行分类,第一条准准则是目的,例如以下表所看到的:
创建型模式与对象的创建有关;结构型模式处理类或对象的组合,它採用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象,从而实现新的功能(对象结构型模式);行为型模式对类或对象如何交互和如何分配职责进行描写叙述。
第二是范围准则,指定模式主要是用于类还是用于对象。类模式处理类和子类之间的关系。这些关系通过继承建立,是静态的。在编译时刻便确定下来了。对象模式处理对象间的关系。这些关系在执行时刻是能够变化的,更具动态性。
从某种意义上来说。差点儿全部模式都使用继承机制,所以“类模式”仅仅指那些集中于处理类间关系的模式,而大部分模式都属于对象模式的范畴。
创建型类模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到还有一个对象中。
结构型类模式使用继承机制来组合类。而结构型对象模式则描写叙述了对象的组装方式。
行为型类模式使用继承描写叙述算法和控制流。而行为型对象模式则描写叙述一组对象如何协作完毕单个对象所无法完毕的任务。
我的理解
创建型模式为其它两种模式使用提供了环境,好比VS软件提供了.net环境和操作平台,是各种编程语言能随心所欲地在这个平台上编译运行;
结构型模式側重于接口的使用(自我感觉)。它做的一切工作都是对象或是类之间的交互,提供一个门,成就一个你来我往。协同合作的地球村;
行为型模式顾名思义,側重于详细行为。所以概念中才会出现职责分配和算法通信等内容。
将三者结合起来成为故事。中美合作的故事——创建型模式提供国际环境。无战争。求发展;结构型模式为中美合作提供理由。即和平时代的互利共赢,行为型模式就详细到两个大国之间是怎样合作。比方经济合作、文化合作等~
大话设计模式宏观总结——创建型&结构型&行为型的更多相关文章
- (转)Java经典设计模式(2):七大结构型模式(附实例和详解)
原文出处: 小宝鸽 总体来说设计模式分为三大类:创建型模式.结构型模式和行为型模式. 博主的上一篇文章已经提到过创建型模式,此外该文章还有设计模式概况和设计模式的六大原则.设计模式的六大原则是设计模式 ...
- Java开发中的23种设计模式详解(2)结构型
我们接着讨论设计模式,上篇文章我讲完了5种创建型模式,这章开始,我将讲下7种结构型模式:适配器模式.装饰模式.代理模式.外观模式.桥接模式.组合模式.享元模式.其中对象的适配器模式是各种模式的起源,我 ...
- 设计模式(11)--Flyweight(享元模式)--结构型
作者QQ:1095737364 QQ群:123300273 欢迎加入! 1.模式定义: 享元模式是对象的结构模式.享元模式以共享的方式高效地支持大量的细粒度对象. 2.模式特点: 享元模 ...
- 设计模式06: Adapter 适配器模式(结构型模式)
Adapter 适配器模式(结构型模式) 适配(转换)的概念无处不在:电源转接头.电源适配器.水管转接头... 动机(Motivation)在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象 ...
- 设计模式09: Decorator 装饰模式(结构型模式)
Decorator 装饰模式(结构型模式) 子类复子类,子类何其多加入我们需要为游戏中开发一种坦克,除了不同型号的坦克外,我们还希望在不同场合中为其增加以下一种多种功能:比如红外线夜视功能,比如水路两 ...
- Java设计模式15:常用设计模式之享元模式(结构型模式)
1. Java之享元模式(Flyweight Pattern) (1)概述: 享元模式是对象池的一种实现,英文名为"Flyweight",代表轻量级的意思.享元模式用来 ...
- Java设计模式07:常用设计模式之装饰器模式(结构型模式)
1. Java之装饰器模式(Decorator Pattern) (1)概述: 装饰模式在Java种使用也很广泛,比如我们在重新定义按钮.对话框等时候,实际上已经在使用装饰模式了.在不必改变原 ...
- 设计模式(8)--Decorator--装饰器模式--结构型
1.模式定义: 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 2.模式特点: 装饰模式能够实现动态的为对象添加功能,是从一个对象 ...
- 设计模式--享元模式Flyweight(结构型)
一.享元模式 在一个系统中如果有多个相同的对象,这些对象有部分状态是可以共享的,我们运用共享技术就能有效地支持大量细粒度的对象. 二.例子 举个围棋的例子,围棋的棋盘共有361格,即可放361个棋子. ...
随机推荐
- POJ_2828_Buy Tickets
题意:插队问题: 2016.5.20,复习这道题. 总结:线段树基础不牢,建树,更新尚不熟悉,注意加强理解记忆. 主要理解:(单点更新,逆序插入) 发生插队时,前面的队伍是连续没有空位的,即pos:2 ...
- BZOJ5314: [Jsoi2018]潜入行动 (树形DP)
题意:一棵树选择恰好k个结点放置监听器 每个监听器只能监听相邻的节点 问能使得所有节点被监听的种类数 题解:反正就是很well-known的树形DP了 至于时间复杂度为什么是nk 不会不学 很好想到四 ...
- c# 常用 Common
/// <summary> /// md5加密字符串 /// </summary> /// <param name="message">< ...
- C++ std::map的安全遍历并删除元素的方法
首先我们讲遍历std::map, 大部分人都能写出第一种遍历的方法,但这种遍历删除的方式并不太安全. 第一种 for循环变量: #include<map> #include<stri ...
- 洛谷——P1176 路径计数2
P1176 路径计数2 题目描述 一个N \times NN×N的网格,你一开始在(1,1)(1,1),即左上角.每次只能移动到下方相邻的格子或者右方相邻的格子,问到达(N,N)(N,N),即右下角有 ...
- lastpass密码管理工具使用教程
现在移动互联网发展异常空气,无论访问哪个平台或者网站必须要注册账号,日子久了就会发现最痛苦的就是记住这些网站的密码.因为我们不可能将所有的网站都是设置同样的的账号密码,因为国内网站用户数据库被泄露的事 ...
- Java 数组中寻找最大子数组
程序设计思想: 依次将数组划分开,先判断一个元素的单个数组大小,接下来两个,依次上升,最后将所得结果进行比较赋值,输出最大结果. 1 package ketangTest; //张生辉,康治家 201 ...
- 洛谷 1339 [USACO09OCT]热浪Heat Wave
[题解] 最短路.那么直接写dijkstra就好了. #include<cstdio> #include<algorithm> #include<cstring> ...
- scanf与getchar
如下: 5 5 R R R R R R R R R R R R R R R R R R R R R R R R R 只允许用scanf,如何写读取函数. 由于 ...
- spring boot 的使用(一)
1. 启动spring-boot项目 mvn spring-boot:run cd target java -jar xxxx.jar xxxx代表生成的jar包