设计模式
文章平均质量分 55
曹 轩
这个作者很懒,什么都没留下…
展开
-
【设计模式】初识设计模式
什么是设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。设计模式可分为:这23种设计模式中又包含了6种创建型模式、7种结构型设计模式、11种行为型设计模式。此外,我们根据某个模式主要是 用于处理类之间的关系还是对象之间的关系设计模式到底...原创 2018-08-20 08:55:03 · 146 阅读 · 20 评论 -
【设计模式】建造者模式
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 最近宝马在韩国真的“火”了,宝马车自燃次数多达30期,引起了韩国宝马车主的不安。经过调查,因为排气再循环系统出现了问题。 大家都知道宝马这个品牌有很多种车型,宝马车主他无须关心这辆宝马是如何被生产出来的,是在哪生产的,他关注最后是不是他想要的车型就可以了。而宝马公司不管生产什么车型...原创 2018-09-02 11:33:55 · 123 阅读 · 18 评论 -
【设计模式】外观模式
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 例子 以喝茶为例,可以选择自己泡茶,也可以选择去茶馆喝茶。如果是自己泡茶就要自己准备茶叶、茶具和开水,去茶馆喝茶呢,你想喝什么茶,直接跟服务员说好了。这种情况顾客就无须直接和茶叶、茶具、开水等交互,整个泡茶过程由服务员来完成,顾客只需要与服务员交互就可以了。...原创 2018-09-01 16:49:21 · 141 阅读 · 19 评论 -
【设计模式】迪米特法则
定义:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调动另一个类的某一个方法的话,可以通过第三者转发这个调用 举个简单的例子,我们大米会有网线部、安全部、外交部等等,这三个部门之间没有任何直接的通信或联系,哪方面出了问题,就找对应的部门就好。 他们之间的耦合性非常强的话,哈哈,改下网线部的条例,其他部门也会...原创 2018-08-30 09:54:20 · 148 阅读 · 27 评论 -
【设计模式】原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 哆啦A梦!!!小夫他哥给小夫买了一个坦克的玩具,不仅可以远程操控,还会发射炮弹呢!我也想要,哇哇哇!!!哆啦A梦:真是拿你没办法。 “复制机”,这个可以帮助你复制出任何你想要的玩具,只要你把坦克玩具的原型拿过来,我就能给你复制出成千上万一模一样的坦克出来,“真的吗,我这就去”。于是,大雄...原创 2018-08-29 18:17:38 · 193 阅读 · 29 评论 -
【设计模式】工厂方法模式
工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 既然有了简单工厂模式,为什么还有加上工厂方法模式呢? 简单工厂虽然方便,但是它最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这就违背了“开闭原则”。还有,在简单工厂模式中,所有的产品都由同一个工厂创建,工厂类职责较...原创 2018-08-28 20:17:52 · 144 阅读 · 30 评论 -
【设计模式】装饰模式
装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活 马云最近看上一个60平小户型的房子,于是等到攒够钱后兴致勃勃的去找中介看了看房,讨价还价后,最终拍板买了下来。 买完后马云突然想到:哎呀,还得装修呢,又得花5万,心痛啊,2分钟的工资没啦!但是没办法啊,装吧。马云找到了装修公司,最终以4万9千8百45元达成协议,于是工人...原创 2018-08-27 21:30:00 · 151 阅读 · 28 评论 -
【设计模式】依赖倒转原则
依赖倒转原则 定义: A:高层模块不应该依赖低层模块。两个都应该依赖抽象 B:抽象不应该依赖细节。细节应该依赖抽象 (换言之,要针对接口编程,而不是针对实现编程)什么叫对接口编程呢,什么又叫对实现编程呢? 说一个非常简单的例子。每个人的电脑都会有鼠标,键盘,我拔下鼠标插口,键盘依然能用;我拔下键盘...原创 2018-08-27 09:59:01 · 168 阅读 · 24 评论 -
【设计模式】开放--封闭原则
只扩展,不修改 对于扩展是开放的,对于更改是封闭的。这就是开放-封闭原则的核心例子: 小明每次考试成绩都在班级的末尾。于是他下定决心要好好学习,每天规定好学习的内容。 突然有一天,小明在大街上看到有人弹吉他,他立刻被深深地吸引了,可是他怕影响学业就放弃了,半年后他唉声叹气跟我说看到现在的年轻人抱着一把大吉他弹奏是那样的意气风发,...原创 2018-08-24 08:21:27 · 205 阅读 · 24 评论 -
【设计模式】模板模式
请客吃饭 首先,这个请客吃饭就相当于一个类,然后到了饭店要进行点菜,点完菜要一起吃饭,吃完饭要去结账。这其中的点菜、吃饭、结账就相当于类中的三个方法。所以知识点就来了。。。 这个过程中点菜和结账这两个环节都必不可少,所以点菜和吃饭这两个方法就相当于一个模板,通用于所有人,不管你是在国外还是国内,也不管你吃的是中餐还是西餐,都会用到这个模板。...原创 2018-08-23 13:36:53 · 274 阅读 · 88 评论 -
【设计模式】代理模式
情景一:“喂喂喂,你是XXX代驾公司吗?我在XXXX,我喝多了开不了车,快来吧”情景二:“在吗,曹哥,听说您最近去巴黎了,巴黎的香水非常有名,您帮我带点回来吧,嘿嘿嘿!” 大家看到上面的两个情景是不是非常熟悉呢?它们就发生在我们身边,我们都遇见过或者都经历过类似于上面的两个情景。想的没错,我要说的就是代理模式 上面两个故事中的访问对象分别是“汽车...原创 2018-08-22 15:27:57 · 255 阅读 · 26 评论 -
【设计模式】单一职责原则
单一职责:一个类,应该仅有一个引起它变化的原因 我写一个窗体应用程序时,大脑简单,要实现一个小功能不会想那么复杂,将所有代码都集合到一个Form窗体中,当了解单一职责后,才发现这种做法是非常要命的。 当你把所有代码,功能都放到一个窗体或者一个类中,可以实现你想要的功能,但是后期的维护呢?你要更改一个小地方就会引起其他地方的改动,甚至影响到整个类中的代码,...原创 2018-08-22 09:38:38 · 154 阅读 · 24 评论 -
【设计模式】策略模式
策略模式 神马是策略模式? 答:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户 我来说一说我的想法:就好比一辆自动档的汽车,你使用汽车的过程中只管去踩油门,刹车就好了,你完全不用考虑什么时候要换挡,这就好比策略模式中的算法封装,将1档、2档、3档、4档、5档分别封装起来,在汽车行驶过程中让它...原创 2018-08-21 16:59:04 · 196 阅读 · 25 评论 -
【设计模式】简单工厂
小菜的日常 小菜去面试后做了一个计算器的小程序,如下图所示: 如果我们没有学过设计模式,那么上面代码乍一看没有毛病 ,逻辑思路很清晰。但是加入设计模式后,我想大家都能说出有哪些问题:1.违背了开放-封闭原则 上面有加减乘除4种运算,如果客户要求再加一个平方根的话,就必须要在该分支下加一个平方根的算法,这样的话就相当于修改了这个类,违背了开...原创 2018-08-20 20:51:22 · 159 阅读 · 29 评论 -
【设计模式】观察者模式
东汉末年分三国,烽火连天不休,儿女情长被乱世左右,谁来煮酒。 话说三国年间,曹操一代枭雄,攻打城池无数,占领了大面积的土地。古代打仗都会通过一种信号向下传达命令,曹操只要一下令,这边就会通过击鼓的方式传递给下面的将士,将士根据信号做出是进攻还是撤退的动作。 曹操下命令--->击鼓--->将士做出响应 由于曹操下达命令要传...原创 2018-09-03 15:20:43 · 131 阅读 · 27 评论