【设计模式】——总览
2015-12-20 21:53
281 查看
在了解完c#语言之后,开启了设计模式的学习。设计模式里充分展现了面向对象的封装,继承与多态。总共24中模式,各有各自的特色与自己独特的使用环境,面对具体的问题还需要具体的分析,活用这几种模式我们离大神就不远了!
一:什么是设计模式?
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结.简单的说就是程序人员公认的规则,是在前人的基础之上总结的,应对目前面向对象程序设计的模板.
我的理解:设计模式就像是写实验报告,虽然每一个实验都是不一样的,但是具体的格式是有的,每写一个实验都知道写实验目的,实验材料,实验步骤,实验结果与分析。具有一定的模式,往里面填东西就可以了。
二:为什么使用设计模式?
设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样.作为一名聪明的程序员应该知道并且熟识.
三:设计模式的内容
设计模式主要根据类与对象的处理方式上分为了创建型设计模式,行为型设计模式,结构型设计模式
创建模式:对类的实例化过程的抽象。一些系统在创建对象时,需要动态地决定怎样创建对象,创建哪些对象,以及如何组合和表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。包含类的创建模式和对象的创建模式。
结构模式:描述如何将类或对象结合在一起形成更大的结构。分为类的结构模式和对象的结构模式。类的结构模式使用继承把类,接口等组合在一起,以形成更大的结构。类的结构模式是静态的。对象的结构模式描述怎样把各种不同类型的对象组合在一起,以实现新的功能的方法。对象的结构模式是动态的。
行为模式:对在不同的对象之间划分责任和算法的抽象化。不仅仅是关于类和对象的,并是关于他们之间的相互作用。类的行为模式使用继承关系在几个类之间分配行为。对象的行为模式则使用对象的聚合来分配行为。
根据我对他们的理解和记忆的方式我分为了一下几种:
设计模式是对于面向对象学习的深入与实践,面向对象有几个原则:开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成/聚合复用原则、最小知识原则也叫迪米特法则。设计模式实现了这些原则,使得我们的程序具有了维护性,复用性。
一:什么是设计模式?
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结.简单的说就是程序人员公认的规则,是在前人的基础之上总结的,应对目前面向对象程序设计的模板.
我的理解:设计模式就像是写实验报告,虽然每一个实验都是不一样的,但是具体的格式是有的,每写一个实验都知道写实验目的,实验材料,实验步骤,实验结果与分析。具有一定的模式,往里面填东西就可以了。
二:为什么使用设计模式?
设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样.作为一名聪明的程序员应该知道并且熟识.
三:设计模式的内容
设计模式主要根据类与对象的处理方式上分为了创建型设计模式,行为型设计模式,结构型设计模式
创建模式:对类的实例化过程的抽象。一些系统在创建对象时,需要动态地决定怎样创建对象,创建哪些对象,以及如何组合和表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。包含类的创建模式和对象的创建模式。
结构模式:描述如何将类或对象结合在一起形成更大的结构。分为类的结构模式和对象的结构模式。类的结构模式使用继承把类,接口等组合在一起,以形成更大的结构。类的结构模式是静态的。对象的结构模式描述怎样把各种不同类型的对象组合在一起,以实现新的功能的方法。对象的结构模式是动态的。
行为模式:对在不同的对象之间划分责任和算法的抽象化。不仅仅是关于类和对象的,并是关于他们之间的相互作用。类的行为模式使用继承关系在几个类之间分配行为。对象的行为模式则使用对象的聚合来分配行为。
根据我对他们的理解和记忆的方式我分为了一下几种:
设计模式分类 | 设计模式 | 定义 |
工厂姐妹花 | 简单工厂 | 一个工厂对象决定创建出哪一种产品类的实例 |
抽象工厂 | 创建了类的接口,接口不指定是哪个类 | |
工厂方法 | 创建了类的接口,接口由子类决定 | |
最强懒汉 | 模板模式 | 子类不改变算法结构重定义步骤 |
原型模式 | 原型实例创建对象种类,拷贝原型创建新对象。 | |
享元模式 | 共享支持大量细粒度对象。 | |
单例模式 | 类只有一个实例化 | |
迭代器模式 | 提供一种方法顺序访问一个聚合对象中的各个元素,不暴露对象的内部表示 | |
第三者 | 中介者模式 | 用一个中介对象封装一系列的对象交互。子类耦合松散 |
解释器模式 | 给定一个语言,定义一种表示,并用解释器解释语言中的句子。 | |
代理模式 | 为其他对象提供一种代理控制对这个对象的访问。 | |
整容大师 | 外观模式 | 子系统的一组接口提供一个一致的界面,定义了一个高层接口。 |
装饰模式 | 动态为对象添加一些额外的职责 | |
适配器模式 | 将一个类的接口转换为另一个接口,使得原本不兼容而可以在一起工作。 | |
精明商人 | 观察模式 | 定义一种一对多的依赖关系,让多个观察者对象同时监听所有的观察者对象,使他们能够自动更新自己。 |
策略模式 | 定义了子类,封装,相互替换,但不会影响子类的客户。 | |
职责链模式 | 多个对象都有机会处理请求,从而避免发送者与接受者之间耦合关系,沿着链传递。 | |
备忘录模式 | 不破坏封装性的前提下, 捕获一个对象内部的状态,在对象之外保存这个状态。 |
相关文章推荐
- 详细设计说明书
- ANDROID PAD版本号 PHONE版本号 源代码有什么 差别?
- 【工具】今天有人问我可以直接离线一个完整的网站吗?有没有什么工具之类的?我推荐一款:Httrack (网站复制机)案例:离线你的博客园
- 软件工程实践总结--个人作业
- poj 2976 Dropping tests(最大化平均值)
- Java:String、StringBuffer和StringBuilder的区别
- windows win10上传文件到linux服务器
- 递归算法(转)
- Android之Fragment学习(四)
- Frame Animation 帧动画
- 如何解决电脑横屏问题
- 听说京东凶残的关了拍拍。。。
- java线程同步——条件对象+synchronized 关键字
- 【ZYNQ-7000开发之五】PL和PS通过BRAM交互共享数据
- Android广播机制知识概要
- Eclipse 的 Debug 介绍与技巧【转载】
- 怎样每天保持饱满的精神状态?
- 好听的英文歌曲整理
- 【The final】软件工程实践总结
- cocos2dx 动画 二(iOS)