设计模式仅仅是一些在项目之间和程序之间复用面向对象代码的简便方法。
对通用的对象间的相互作用方式进行记录和编目。
设计模式描述对象如何进行通信才能不牵涉相互的数据模型和方法。
努力使对象只涉及各自的业务。

理解:对象只涉及自己的业务,设计模设来处理对象之间的通信,并保证各个对象之间的通信不涉及相互对象的数据模型和方法。设计模式使得对象代码的复用变得简单,使对象得以独立完成自己的业务逻辑。

Design Patterns :Elements of Reusable Software
Gang of Four
GoF

通过维持对象的独立性,找到对象通信的有效方式。

一些定义:
1 设计模式是对读者经常遇到的设计问题的可再现的解决方案
2 设计模式建立了一些列描述如何完成软件开发领域中特定任务的规则
3 设计模式更关注复用可重复出现的结构设计方案,而框架更注重于具体设计和实现。
4 模式提出了一个发生在特定设计环境中的可重复出现的设计问题,并提供解决方案
5 模式识别并确定类和实例层次上或组件层次上的抽象关系

理解:设计模式是一种解决方案,用于解决经常出现的设计问题,描述如何用特定的解决方案更有效的解决特定的任务,设计模式只是一种抽象的方法,提供一种解决问题的方案,它不关心问题解决得具体实现。

设计模式不仅仅局限于对对象的设计,还涉及到对象之间的相互作用,从某种意义上来说,某些模式可以看做通信模式。

1 创建型模式:创建对象而不是直接实例化对象,使程序在判定给定情况下创建哪一个对象时更为灵活。
2 结构型模式:可以将一组对象合成更大的结构,比如复杂的用户界面或报表数据
3 行为型模式:定义系统内对象间的通信,以及复杂程序中的流程控制

理解:创建型模式理解为如何创建适合特定情况的对象,结构型模式理解为多个独立的对象组合成更大结构的方法,行为型模式理解为如何在对象之间进行有效的通信。

接受---认可---领会
接受设计模式对自己的工作很重要,认识到需要学习设计模式,才能知道什么时候使用合适的设计模式,应用以后,要充分消化模式的细节,领会模式的真正内涵,应用到下一个相似的场景。

使用设计模式的根本是为了保持类之间的阻隔,防止相互之间了解太多的内容,使用设计模式可以避免重复开发。

针对接口编成:在任何类层次结构的顶端,定义一个抽象类或者一个接口,它没有实现方法,只定义该类需要支持的方法。所有的派生类可以更大自由度的去实现这些方法,最大限度地满足你的要求。

理解:定义接口,派生子类,接口定义方法,子类实现方法,充分发挥子类的自由度,最大程度上实现需求。

对象组合:将几个对象封装在另一个对象中,新的对象拥有一个最适合于要完成的目标的接口,而不是拥有父类中的所有方法。
使用对象组合优先于继承。

设计模式学习(一) 基本理念相关推荐

  1. 7 种 Javascript 常用设计模式学习笔记

    7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...

  2. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

  3. Builder (建造者) — 【面向对象设计模式学习】

    Builder (建造者) - [面向对象设计模式学习] By CityWalker 2010年3月19日 Intent Separate the construction of a complex ...

  4. 设计模式学习笔记清单

    设计模式学习笔记清单 关于设计模式许多人已经耳熟能详,这段时间结合李建忠的教学视频以及大量网络资料,把这部分过了一遍,整理出学习笔记,而真正的深入学习和理解只能在具体的开发环境中日积月累.      ...

  5. 步步为营 .NET 设计模式学习笔记系列总结

    设计模式我从开篇到23种设计模式的讲解总共花了进两个月的时间,其间有很多读者给我提出了很好的建议,同时也指出了我的不足,对此我表示感谢,正是由于很多读者的支持我才能坚持的写到最后.在此表示我真诚的谢意 ...

  6. 面向对象软件设计——设计模式学习

    工作也从开始C语言,转向现在的C++,表面上看得出,但实际中却没有把这种转变深入到思想中,究其原因还是对面向对象的软件设计不了解,有必要好好学习一下设计模式这个东东.本文就是设计模式学习第一篇-- 1 ...

  7. 设计模式学习笔记--Strategy 策略模式

    所谓策略模式(Strategy Pattern),就是将策略 (算法) 封装为一个对象,易于相互替换,如同 USB 设备一样可即插即用:如果将策略.具体的算法和行为,编码在某个类或客户程序内部,将导至 ...

  8. 设计模式学习之代理模式学习(一)

    设计模式学习之代理模式学习(一) 关于设计模式想必学习过Java语言的人都知道吧,当时对其进行深入学习的的人应该不是很多.在我看来设计方面的知识相比于框架应用配置等知识要有意思的多,并且设计模式的对一 ...

  9. c#设计模式学习1之工厂模式

    c#设计模式学习1之简单工厂 进入程序员这个行业快一年了,写的程序就那么多,一直感觉写的程序没有质的飞跃,看看高手人家的程序,感觉和自己写的差的很大,什么n层了等,看起来都费力,仔细琢磨可能是设计模式 ...

  10. 设计模式学习-工厂方法模式

    在上文(设计模式学习-简单工厂模式)的模拟场景中,我们用简单工厂模式实现了VISA和MASTERARD卡的刷卡处理,系统成功上线并运行良好,突然有一天老大跑来说,我们的系统需要升级,提供对一般银联卡的 ...

最新文章

  1. ARKIT/ARCore对比分析(一)
  2. 【大数据】Zookeeper学习笔记
  3. 查看Linux内核版本的命令
  4. caffe使用过程中遇到的一些问题错误
  5. 兴业银行与第四范式开启AI平台加速模式 毫秒级信用卡反欺诈系统上线
  6. mac os 安装 pkg-config
  7. .NET中的UI自动化测试
  8. spring aop组件_安全性中的Spring AOP –通过方面控制UI组件的创建
  9. 关于动画的几种状态表示的含义以及能够使用2d动画表述为什么要使用3d动画表述
  10. 详解 Blockchain Cuties (区块链萌宠)
  11. 如何设计一个本地缓存,涨姿势了!
  12. sqldr load 以及extract data 的中文问题--
  13. chrome插件,常用插件,必备插件,黑科技
  14. 高中数学基础08:关系、概率与统计
  15. 【oracle学习】2.集合运算
  16. 小白从零开始:STM32双闭环(速度环、位置环)电机控制(硬件篇)
  17. html中设置浏览器解码方式
  18. 计算机网络技术企业环境,浅谈高职院校计算机网络技术专业教学环境建设
  19. 求一份网页设计结课大作业,要求用到html,css,javascript,的知识
  20. 高性能串口转以太网模块

热门文章

  1. java 小数精确_Java中小数精确计算
  2. java arrays.sort() c_正面刚算法-Java中Arrays.sort()(一)
  3. spring中这些能升华代码的技巧,可能会让你爱不释手
  4. GIT:如何管理本机的多个ssh密钥(多个远程仓库账号)
  5. 笔记本电脑怎么清理灰尘_用了这么多年电脑,你该清理清理这个,将会又快又流畅...
  6. 测试总监7天整理的那些高频而真实的软件测试面试题,速来get
  7. 2022年软件测试工具大全(自动化、接口、性能、安全、测试管理)
  8. c语言结构体和函数,【提问】问个C语言结构体和函数的问题
  9. js中显示一个指定html文档,JS实现选定指定HTML元素对象中指定文本内容功能示例...
  10. 【PHPExcel】设置打印格式