`

设计模式之我见(1):设计模式概述

阅读更多

(一) 概述

什么是设计模式:

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码实际经验的总结

(二) 为什么要用模式(模式到底能为我们做什么)

1、一个系统需求做的再好,分析再认真,没有好的设计也是不行的,因此,我建议大家关注DESIGN PATTERN,这是大家全面进步的一个机会,也是走向务实的道路。

2、复用考虑,某些模式可以增强被包装类的复用能力

3、有效的处理需求的变更,做到以不变应万变

4、设计模式可以减少各个分析类之间的耦合和倚赖。

5、最有效的学习别人经验的方法

6、可以使你的设计象专家做出来的一样。

7、带给你全新的设计思想。

8、更好的理解别人的工作。如果你不懂模式,别人的工作你可能看不明白。

9、使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性

(三) 模式在开发中的重要性

正如上面所说的设计模式的出现是为了解决项目开发中相同问题的不断出现的一个很好的解决方法的总结。它是项目维护升级时重要的基石。如果我们把项目比作成盖房子的话,设计模式就是一个一个方砖可拆可加可扩可收,设想下你的房子用泥去糊上的话显然属于一次性的产品,而其一旦出了问题。。。。(你敢住否)。一个项目特别这个项目是产品的话我们要尽可能的去做这些个设计,虽然我们付出了一些成本(方砖是由泥土烧化而成当然是需要成本的哈)但对这个项目来说呢多了稳健和可扩展性,大大降低了相同问题的维护量,程序员之间的交互更为模式化,何乐而不为呢,所以在项目中模式的运用是不可或缺的。

(四) 模式大体框架分析

我比较倾向与下面的分类方法,首先我们要去总结下设计模式到底分为哪几种类型每种类型到底使用来解决什么问题(这个会在每个模式讲解中一一体现)

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 127.5pt" type="#_x0000_t75"><imagedata o:title="模式结构图" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata></shape>

(五) 学习设计模式要具备的基本条件

俗话说得好“欲练神功必先自宫,就算自宫未必成功。”这话听起来很有意思,也很搞恶,但它确确实实的反应出很现实的问题。“欲练神功必先子宫” 先决条件,“就算子宫未必成功”这个就是结果的一种。不是你子宫了你就能练成绝世神功,也是需要看先天灵性和后天努力的。说了那么多废话,其实我想表达的意思很简单,设计模式很抽象进入的门槛也不是太高,但学完后能灵活运用的人不多。那么我们进入这个领域的先决条件有那些呢

² 面向对象编程思想,知道抽象、继承、多态3个核心内容概念

² 熟练使用.NET中的任意一种语言(以后所有示例都会用C#编写所以还是希望大家多了解点C#语言)要熟练使用接口、继承、多态、委托、事件等语言实现方法

² 熟悉UML建模

² 有一定的项目经验(我在看很多朋友在写关于设计模式的文章时都忽略了这点,从我个人成长的过程来看学习设计模式单单从理论上去学习不是什么好的方法,很容易让人思维定式,我们学习设计模式不是为了学而学,是为了用而学,学会怎样灵活的使用它,这个和个人项目经验有很大的关系)

分享到:
评论

相关推荐

    Tomcat 系统架构与设计模式,第 1 部分: 工作原理1

    Tomcat 系统架构与设计模式,第 1 部分:工作原理 本文将从 Tomcat 系统架构与设计模式的角度,探讨其工作原理的第 1 部分,我们将从以下几个方面进行讨论: 1. Tomcat 系统架构概述 Tomcat 是一个基于 Java 的...

    设计模式概述及23种设计模式

    设计模式概述及23种设计模式 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式能使编写的程序具有...

    设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式

    设计模式之我见(1):设计模式概述 (100%) 设计模式面面观(2):设计模式基本要素与原则 (100%) 设计模式面面观(3):单件模式(Singletion)-创建型模式 (100%) 设计模式面面观(4):工厂模式...

    设计模式的杰作:深入设计模式

    ### 设计模式的杰作:深入设计模式 #### 概述 《深入设计模式》是一部由亚历山大·什韦茨所著、彭力翻译的作品,旨在通过深入浅出的方式介绍设计模式的相关内容。该书不仅包含了面向对象程序设计的基础知识,还...

    《设计模式:可复用面向对象软件的基础》学习并理解 23 种设计模式

    #### 设计模式概述 设计模式是一种被广泛采用的、经过验证的解决方案,用于解决软件开发过程中常见的设计问题。它不仅帮助开发者编写可复用的代码,还促进了团队成员之间的有效沟通。设计模式通常包括以下几个部分:...

    软件设计模式(java版)习题答案.pdf

    软件设计模式概述 软件设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 面向对象的设计原则 1. 一个...

    《设计模式:可复用面向对象软件的基础》英文版

    《设计模式:可复用面向对象软件的基础》是一本由Erich Gamma、Richard Helm等四位国际知名的软件工程师共同编写的经典之作,该书提供了面向对象软件设计中常用的模式,并通过具体的案例解释了这些模式如何帮助解决...

    Java设计模式03设计模式概述.pdf

    ### Java设计模式03设计模式概述 #### 设计模式的诞生与发展 设计模式的概念并不是源自软件行业,而是从建筑行业中衍生而来。模式之父克里斯托弗·亚历山大(Christopher Alexander),作为加利福尼亚大学环境结构...

    《Java设计模式》刘伟 课后习题及模拟试题答案.rar

    《Java设计模式》是刘伟老师的一本经典教材,它深入浅出地讲解了软件设计中的重要概念——设计模式。设计模式是经验丰富的开发者在解决常见问题时总结出的通用解决方案,是软件开发中的智慧结晶。这本书的课后习题和...

    C++ 23种设计模式1

    《C++ 23种设计模式1》是关于软件工程中设计模式的深入解析,主要聚焦于C++语言的实现。设计模式是经过时间和实践验证的解决方案,它们针对常见的编程问题提供了一套标准的模板,使得开发者能够更高效地编写可复用、...

    23种面向对象设计模式

    文档中的“23种设计模式学习笔记.doc”可能包含了对这23种模式的详细解释和实例,而“设计模式之我爱我家.doc”可能从一个更生活化的角度来阐述设计模式的概念。“软件23种设计模式,超级经典的.pdf”可能是对这些...

    《软件秘笈:设计模式那点事》郑阿奇(编者) -电子工业出版社

    在第1章软件设计模式概述后,从第2章到第24章诠释23个软件设计模式。 1 设计模式概述 1.1 计算机软件的发展现状 1.2 引入设计模式的必要性 1.3 软件设计遵循的基本原则 1.3.1 高内聚、低耦合 1.3.2 面向抽象...

    设计模式概述

    java的23种设计模式的概述,只是简单的汇报一下,每种模式在详细叙述,将在以后慢慢上传

    03 第3章 设计模式概述

    03 第3章 设计模式概述03 第3章 设计模式概述03 第3章 设计模式概述

    软件秘笈:设计模式那点事 下载

    在第1章软件设计模式概述后,从第2章到第24章诠释23个软件设计模式。每一种都以一个生活故事开始,然后是模式定义、模式分析、模式实现、设计原则和使用场合。模式实现通过Eclipse中的Java工程展开,采用软件编程...

    23种JAVA设计模式和15种J2EE设计模式

    以下是23种Java设计模式和15种J2EE设计模式的概述: **Java设计模式** 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。例如,`Singleton`模式常用于配置中心或日志服务。 2. **工厂模式**:提供...

Global site tag (gtag.js) - Google Analytics