设计模式
文章平均质量分 65
David_lou
这个作者很懒,什么都没留下…
展开
-
《head first》设计模式之七 适配器、外观模式
生活中的我们遇到的适配器最多的就是之前港版mac的转接头了,因为香港和我们大陆的电源插头标准不一样,所以需要一个转换接头,现在我们经常会在mac上看到转接头,毕竟mac的硬件标准和微软的可能还是有一些区别 适配器模式:把一个类的接口转换为客户需要的另一个接口,适配器让原本不兼容的类可以合作无间 基本类图入下 我们看到mac需要充电,目前只有一个香港的充电器在身边,但是大陆的插座和香港的充...原创 2018-02-09 14:20:04 · 261 阅读 · 0 评论 -
《head first》设计模式之三 装饰者模式
今天有时间看了head first设计模式的第三个模式--装饰者模式 Decorate Model 文章一开头就着重强调一个开发原则--对修改关闭,对扩展开放的开闭原则 装饰者模式定义--动态的将责任附加到对象上。想要扩展对象,装饰者提供了有别于继承的另一种方式。 装饰者解决的问题如下:星巴zi里面有很多款饮料,星冰乐,卡布奇诺,美式咖啡等。但是统一都是饮料(Beverage) 在基本咖...原创 2018-01-30 21:27:45 · 276 阅读 · 0 评论 -
《head first》设计模式之四--工厂模式
工厂模式一章讲了很多内容,但是设计思想是一致的 1:变量不可以持有具体类的引用(如果使用new 就会持有具体类的引用,可以用工厂类避开) 2:不要让类派生自具体类(如果派生自具体类,那就是依赖具体的实现类,弹性差,请派生自抽象类或者接口) 3:不要覆盖基类中已实现的方法(如果覆盖基类已实现的方法,那基类就不是一个真正适合被继承的抽象,基类中已经实现的方法,应该有所有的子类共享) 本章的工厂...原创 2018-02-05 11:07:47 · 348 阅读 · 0 评论 -
《head first》设计模式之五 单例模式
单例模式的定义:确保一个类只有一个实例,并且提供一个全局访问点;书上说单例模式基本上是最简单的设计模式了,主要是面对重资产保持唯一性的主要设计原则。比如线程池,比如注册表,这些都要保持唯一性,否则系统资源紊乱,或者是环境配置不正确等问题。 单例模式:1饿汉模式;懒汉模式。2双重检查加锁模式 单例的进化:初始模式 class Singleton{ private static Single...原创 2018-02-05 19:24:35 · 258 阅读 · 0 评论 -
《head first》设计模式之八 模板模式
模板模式的定义:在一个方法中定义一个算法的框架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。这个地方用到的设计原则是好莱坞原则,等我调用你,不用你来调用我。防止“依赖腐败” 书中讲解的例子是Beverage的例子,之前我们在装饰者模式中讲到了Beverage的例子,装饰者模式是添加了一些责任,让我们的cost方法变得间接。这次我们看Bever...原创 2018-02-11 09:17:36 · 226 阅读 · 0 评论 -
《Head First》 设计模式之一 Strategy model
zhi hu 上讲到开发人员推荐看的好书,有一套head first 系列很受推荐,正好最近也在看设计模式方面的书,所以就先在网上找了pdf文档,也准备写一个系列的博客记录学习的过程,this is the first blog。 Head first 设计模式第一个讲到的模式就是 ---策略模式--- 策略模式的定义(对客户,对领导,对同事的装逼说法):定义了算法族,分别封装起来,让他们之...原创 2018-01-29 18:45:56 · 226 阅读 · 0 评论 -
《Head first 》设计模式之二 观察者模式
设计的原则 1:把不变和变动的部分分开设计 2:面向接口编程,不面向实现编程 3:多用组合,少用继承 昨天晚上学习了观察者模式,观察者模式的定义:定义了一种一对多的依赖,当一个对象状态发生改变,所有依赖它的对象都会得到通知,并自动更新 文中用到的例子是气象站,很多气象网站或者是机场,客运中心,农场都对气象数据感兴趣,他们会依赖气象站发布的数据,那么频繁地访问气象站数据,不如让气象站通知机...原创 2018-02-08 10:35:04 · 250 阅读 · 0 评论 -
《head first 》设计模式之六 命令模式
命令模式的定义:将请求封装成对象,这可以让你使用不同的对象(请求、队列、或者日志)来参数化其他对象,命令模式可以支持撤销操作。主要目的是把命令的发出者和执行者,以及命令解耦。 书中的例子讲的是智能家居遥控器例子:一个遥控器插板,有多个插槽,可以供我们扩展。每一个插槽可以插入一个芯片,每个芯片意味着可以控制一款智能家居,比如电视,电灯,洗衣机,空调,音响等。插槽旁边就是打开与关闭开关(一个芯片对应...原创 2018-02-07 20:10:05 · 270 阅读 · 0 评论 -
对Java学习的粗浅理解
最近一直在看《深入理解java虚拟机》,这本书很厚很重,用来当枕头还有些硌得慌,但是通过慢慢的阅读发现此书确实对自己有很大的裨益,但是我是一个脑栈很浅,计算频次很低,内存又小的人。看这个书我每次只能看几页,看着看着就会脑袋发热,然后阖上书又马上会忘记刚刚看到的内容。所以我这个人看一样东西必须从大往细看,不掌握体系看细节的话,每次都像是管中窥豹。就像之前看了很多博客,以为自己学习了很多东西,但是都是...原创 2018-10-09 19:48:01 · 281 阅读 · 0 评论