设计模式开章

序:

        在杰哥和谢老师的交导下,我一个不小心接触到了设计模式。加上自己强烈的求知欲,不小心研究了一下。但是觉得

自己没有掌握到。所以开个博客和网友们探讨探讨。

我们就带着下面的问题来探讨吧(如果有不同意见的网友可以留言):

       什么是设计模式?什么时候要用设计模式?为什么要用设计模式?设计模式用来做什么?有哪些设计模式?

 

1.设计模式简介

        设计模式是一套前人总结的解决方案(解决问题的方法,后面"模式"=="设计模式"),就好像36计,72变等。GoF把他

们写出一本书《设计模式》,每个模式都有一个特定的适用场合。在遇到适当的环境使用模式会提高程序的扩张性,如果在

不适当的环境中用模式会怎样呢?举个例吧:A国派15个兵攻打B国,B国有1W兵守城,B国用走为上策。简单点说就是很糟。

所以有这样的一个说法(滥用设计模式)。

 

2.设计模式的分类

        通常说的设计模式是指GoF的《设计模式》一书所说的23种设计模式。23种设计模式又分为3个类别:如下

创建型:单例模式,工厂方法,抽象工厂,原型模式,建造者模式

结构型:适配器模式,外观模式,代理模式,装饰模式,桥接模式,组合模式,享元模式。

行为型:模板方法模式,策略模式,中介者/调停者模式,观察者模式,访问者模式,命令模式,

                责任链模式,状态模式,解析器模式,迭代器模式,备忘录模式,

 

3.设计模式的四个基本要素

        不止这23中模式,任何的模式也有以下四种特点:

*模式名字:每一个模式都有相对应的名字,用于与人讨论。

*适用场景:每个设计模式都一个对应此模式的场景。(认清场景,不适合就不要用。)遇到以后扩展可能要用一个模式,这

         时就不知道这么办了。

*好处:可以提高程序的灵活性、扩充性、可移植性和健壮性等。。。

*坏处:任何事都会有反作用的,程序变得复杂;一个模式解决了一个问题有可能会出现另一个问题(模式的不完善)。      

 

4.设计原则

        前面说到模式是前人总结的。但前人是怎样发现模式的呢?是基于什么发现模式的呢?答案是设计原则。模式是把

设计原则作为基石而形成的物体。设计原则有7个:

*单一职责原则:类的职责一致。(啊伦:把变与不变的东西分离开来)

*里氏替换原则:子类能替代父类的出现。(继承不要重写方法)

*依赖倒转原则:高模块不应以来底模块,两者依赖抽象。(类的关系终止于抽象)

*接口分离原则:接口的内容量尽量少。(但不能分得太小)

*合成/聚合复用原则:尽量用组合形式扩展而不是用继承。

*迪米特法则/最少知识原则:一个对象内尽量不要出现别的对象,如果要调用就使用第三者。(过度遵循此原则会有大量的第三者)

*开-闭原则:对扩展开放,对修改封闭。对扩展开放,对修改封闭。(这只是一个概念不能完全封闭)

5.设计模式和框架

        在这也顺便谈谈对设计模式和框架的看法。设计模式是一套被反复使用、经过分类编目的、代码设计经验的总结。而架构是一个

完成了一部分的程序。

共同点:都是抽象出来的东西!模式是抽象解决事情的方法,架构也是抽象解决问题的方法。但架构的粒度比模式要高。

不同点:构件是代码重用,模式是设计重用,而架构是构件和模式的集合体。既有代码重用也有设计重用;因为构件局限了架构,所以

模式比架构更通用(抽象)。

 

本人是第一次写这些东东&文化低,可能写得不是很好!希望网友们体谅~~~~谢谢。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值