设计模式系列:总结
来源:互联网 发布:centos 移除账户 编辑:程序博客网 时间:2024/06/05 04:24
零.什么是设计模式:
设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式是可以解决特定场景的问题的一系列方法。就是问题解决模型。
一.怎么学习设计模式:一个字:实践
写大量代码
写大量代码
写大量代码
设计模式就是某一类型场景下的最佳实践.复杂度到一定程度设计模式的问题你都会遇到,你欠缺的就是代码的复杂度而已.简单的说就是在现有面向对象语言的语法限制下,如何把各种关系转化为 –> 1:N –> 1:1关系.必须有大量hands on的实践,在这个过程中或之后,慢慢总结。读书是帮助总结的。
基本设计模式在java api中都有体现,而且设计模式是可以脱离语言进行讨论的,只是不同语言的实现方法有所区别,如果熟悉java就可以去看java的api实现,熟悉c++可以去看STL或者是boost(boost相当复杂的说),而且有的设计模式需要面向对象特性的支持,可自行选择。
然后投入到大量的项目开发和代码阅读中,任何真正意义上的开发,那些常见的design pattern是想躲也躲不了的,比如MVC, singleton, factory, observer什么的。成熟的源代码中往往用pattern的痕迹会很重,比如java和android源代码。
二.设计模式的重点是
设计模式最核心的概念是什么:抽象,java中体现为抽象类和接口,提取抽象层。
三.其他
掌握每个设计模式一个关键的变化点:比如减少if-else,就要想到状态模式、策略模式、工厂模式等等.每个设计模式的意图是区分的关键
设计模式可以嵌套设计模式
设计模式的各个类图只是它画完整之后是那个样子的,其实多数部分是可以删除的,最精简的反而可以帮助你快速理解,抽象的部分都是可以删除的
设计模式之间的区别也是非常需要注意考虑的,掌握这个更是非常的重要
初级程序员看用哪个设计模式,高级程序员不看设计模式,只看6大设计原则。因为设计模式比较大,它的应用范围比较窄,但是设计原则比较小,它的应用范围反而更大了。高焕堂讲的EIT
设计模式的重点就是增加扩展性和和可维护性
命令模式中,如果我们用面向事项的方式来实现的话:会直接让调用者(invoker)和每个接受者(recevier)之间交互,产生耦合,然后命令模式主要的就是在他们中间增加一层,命令层,来隔开这两者之间的交互,调用者和命令之间交互,命令再去调用具体的接受者来执行命令。中介者模式:面对实现编程,房东和每个租房者之间打交道,通过增加一层中介者:房屋中介,实现租房者只需要跟中介打交道,房东也只需要跟中介打交道。真的应了那句话:软件设计中,我们总能通过增加一层来解决很多软件代码耦合的问题。所有的设计模式不都是这样的吗?中介者模式也是这样的道理。访问者模式或许也是这样的道理。
提炼事物的共同点,然后封装之。
- 设计模式系列:总结
- 设计模式系列:设计原则一句话总结
- 设计模式系列总结之策略模式
- 设计模式系列总结之观察者模式
- Net设计模式实例系列文章总结
- 设计模式读书笔记与总结系列文章
- 设计模式系列课程14之【创建类模式总结】
- 设计模式总结篇系列:单例模式(SingleTon)
- 设计模式总结篇系列:模板方法模式(Template Method)
- 设计模式总结篇系列:代理模式(Proxy)
- 设计模式总结篇系列:外观模式(Facade)
- 设计模式总结篇系列:组合模式(Composite)
- Net设计模式实例系列文章总结(郝宪玮)
- Tomcat 设计模式总结(Tomcat源代码阅读系列之八)
- Tomcat 设计模式总结(Tomcat源代码阅读系列之八)
- 设计模式系列文章
- 设计模式初学者系列
- C++设计模式系列
- 设计模式系列:设计原则一句话总结
- 有电源差通信电路
- MongoDB server端的启动和添加到服务。
- JS设计模式之原型模式
- shell中各种括号的作用()、(())、[]、[[]]、{}
- 设计模式系列:总结
- setprecision
- LeetCode:Subsets II
- 关于网页设计中购物车hover与table切换实现方法的一点点说明
- 农村土地确权之数据处理工具
- 状压Dp_______Sitting in Line( hdu 5691 2016百度之星初赛A )
- C#位运算讲解与示例
- MFC:在状态栏最左边显示鼠标当前的坐标
- Monologue, to clear my thoughts