00:00
下边呢,要跟他聊的就是设计模式的介绍,那要说几点东西了啊,设计模式是我们程序员在面对同类软件工程设计师所总结出来有经验,呃,所有用的经验模式并不是代码。诶,老师说什么样,模式不是代码,模式不是写出来的吗?注意啊,模式的确不是代码,因为你你这个模式更多的是站在一种这个设计或者思想这个层面的,听起来很空,设计和思想,但是我今天不会让你感觉到很空,我让你实实在在的看到它的一个好处啊。他确实是是设计思想这个东西的,它不是代码,它其实用思想只是用代码把它实现出来的而已。你的scale有设计模式,你的Java呢也有,你的go语言呢,你PHP呢,你的你呢,啊都有,都有这种设计,包括javascript也有设计模式,它跟语言没有关系,甚至他不用语言也有这种概念,在我们生活中也会出现这种类似的需求。
01:02
软件工程,我们说软件其实拿到一个场景在生活中也会出现啊,所以你设计模式学好了,你的生活效率也会变得很高啊,你这个处理人的关系啊,他也是有这个概念在里面的,只是咱们不要说的那么抽象而已,那么它是某类问题的通用解决方案,设计模式叫design partner。它代表了最佳实践啊,最佳的一个解决方案,这些解决方案是众多的软件开发人员经过相当长的一段时间试验和总结出来的,这是第一个概念啊。那么设计模式的本质是为了干什么呢?提高软件的维护性、通用性、扩展性,降低软件的复杂度,就让我们软件呢,写的又简单,而且效率还高。他是要解决这么一个问题,就好像原先我们写代码呢,怎么写呢,诶怎么简单这么写。但后面我们发现这种简单是简单的,后面发现维护起来很困难,大家应该听说过,在上一个世纪70年代,出现一个叫软件巨兽的一个问题啊,出现一个叫软件拒售,软件拒售。
02:07
啊,这个软件据说是当时呢,几大公司一起去开发一个项目,发现这个软件已经失控了,就你写你的,我写我的,后面完全没有工程的概念,于是在70年代,在德国的一个城市,我忘了是哪个城市了,就召开了一个软件工程大会,是世界第一届,那么当时别人就提出了一个概念,在那个时候就提出了一叫软件工程的概念。就是那个时候我们软件才提到一个工程的概念,以前就是写代码,那这个时候就引用了很多有了几百年历史的这种行业,比如说机械。啊,机械行业它的发展历程比较,那么机械是怎么做的,就开始引入这些概念,往这个软件里面灌输,我发现真的要设计了啊,那么其中有一本书,大家到时间去找一找,叫设计模式,这本书是经典的,其中有四个人,这四个人呢,呃,有个术语叫go。
03:03
G有人听过叫杠of four gun four,杠four呢,他也翻译过来叫四人帮,这些四个人呢,他们是出了一本经典的设计模式,至今也影响了设计模式的一些,这个呃,至今还产生很大影响,包括我讲的这个设计模式呢,也基本是是按照他这种思路来设计的,因为设计模式建设思想可能。大家理解不一样。最后呢,大家公认这四个人写的呢。比较到位啊,就认为呃,这个取了名叫go,叫杠啊杠复,那么设计模式不取线于语言都可以写啊,叫好,这个说完了过下面呢,我们就来看设计模式的分类。好,设计模式的分类,我们看看设计模式分几类呢啊。首先我们来看,统共按照这个机就刚做。
04:02
它的一个规则是23种,可能有些地方你可以看到,诶,不是23种,可能是有变化,但是目前公认的呢,还是以这个家伙就这本书提出的概念为主的,那么一般认为有23种设计模式,那23种里面呢,又分三大类,一个叫创建型,模式结构型、行为型。啊,其实你读了你也不知道是什么啊,反正大致知道就是一个是以创建为主的,解决创建的问题的结构呢,它是解决我们这个程序不要有过多的类,就是防止类爆炸行为呢,往往是在一个动态的控制的,比如说我们要去完成一个调方法的调用,怎么来去控制这种,所以说它这个分为创建结构和行为,它是有道理的。那么我们这标红的是我我要讲的啊,这这个也要讲啊,这个应该也要讲,那就是啊单利模式,这个工厂工厂模式啊,这是这1234,然后呢,我们讲一个装饰者模式和代理模式,后面还有个观察者模式,不可能全部讲完,没那么时间啊,如果二三种要全部讲完,意义也不是很大,因为呃,有些模式呢,其实它用的也不是特别多,你讲完了过后,除了让你感觉到什么呢,感觉到你你你把前面血统的忘了之外,没有什么效果啊,有很多模式效果很很像。
05:23
就好像你刚刚学了一个高中,你学了一个扇扇这个正弦函数,马上让你学个余弦函数,哎哎,记住了吧,马上让你学学个正切啊,彻底前面就忘掉了啊,所以呢,我们也没有必要全部讲完啊,讲重要的说就行了。好了,还有这我说了一句话啊,不同的书籍对分类和名称略有差别,可能有些人说老师,那我看有些地方你不这么叫。有道理,都是外国人翻译过来的,没有一个,没有一个标准答案,因为设计模式没有一个人设计啊,比如说我们撕开了有个权威,那就是马丁奥的斯基,他说了算,比如Java,那就是高斯里说了算,人家创始人,但是设计模式没有哪一个人去去创造这个东西,他是一种大家慢慢慢慢开发出来,诶大家认为这个不错,大家在论坛呀,或者是在书上大学非常可以啊,所以没有标准答案。
06:14
但是呢,这个分类模式呢,基本上算是大家公认的一种方式,至少聊一下好有了这个东西呢,我们做了介绍,我们现在直接上代码了啊,截取一段视频。
我来说两句