设计模式
习惯2021
这个作者很懒,什么都没留下…
展开
-
《Head First 设计模式》学习笔记——模板方法模式
模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。设计模式模板方法模式:在一个方法中定义一个算法的框架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结果的情况下,重新定义算法中的某些原创 2014-06-02 13:59:34 · 1061 阅读 · 1 评论 -
《Head First 设计模式》学习笔记——迭代器模式 + 组合模式
迭代器模式是与集合共生共死的,一般来说,我们只要实现一个集合,就需要同时提供这个集合的迭代器,就像java中的Collection,List、Set、Map等,这些集合都有自己的迭代器。假如我们要实现一个这样的新的容器,当然也需要引入迭代器模式,给我们的容器实现一个迭代器。————题记设计模式迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而不暴露其内部的表示。把游走原创 2014-06-02 15:38:29 · 1623 阅读 · 1 评论 -
《Head First 设计模式》学习笔记——适配器模式 + 外观模式
在ADO.NET中,对于我们从数据库中取出的数据都要放到一个DataSet中,不管你是Access的数据库,还是SQL的数据库,或者是Oracle的数据库都要放到DataSet中。.NET中并没有提供如:SqlDataSet、OleDbDataSet、OracleDataSet等,它只提供了一种DataSet就是用SqlDataAdapte等去填充数据;为什么这一个DataSet能存放不同的数据呢原创 2014-06-02 13:28:30 · 1172 阅读 · 1 评论 -
《Head First 设计模式》学习笔记——单件模式
设计模式单件模式:确保一个类只有一个实例,并提供一个全局访问点。要点单件模式确保程序中一个类最多只有一个实例。在Java中实现单件模式需要私有的构造器、一个静态方法、一个静态变量。确定在性能和资源上的限制,然后小心翼翼的选择适当的方案来实现单件,以解决多线程问题。全局变量缺点如果将对象赋值给一个全局变量,那么必须在程序一开始就创建好对象。万一对象非常耗费原创 2014-06-01 21:17:30 · 979 阅读 · 0 评论 -
《Head First 设计模式》学习笔记——工厂模式 + 抽象工厂模式
设计模式工厂模式:定义一个创建对象的接口,但由子类决定要实例化的是哪一个。工厂方法让类把实例化推迟到子类。所谓的“决定”,并不是指模式允许子类本身在运行时做决定,而是指在编写创建者类时,不需要知道实际创建的产品是哪一个。选择了使用这个子类,就自然的决定了实际创建的产品是什么。抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要指定具体类。抽象工厂的任务时定义一原创 2014-06-01 20:37:09 · 1197 阅读 · 0 评论 -
《Head First 设计模式》学习笔记——观察者模式 + 装饰者模式
装饰者模式是JDK中另一个使用较多的设计模式,上一个是观察者模式(在Swing中大量使用),业内好的API设计无一离不开常见的设计模式,通常我们所说要阅读源码,也是为了学习大牛们的设计思路。————题记设计模式观察者模式:定义了对象之间一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提原创 2014-06-01 20:35:29 · 1355 阅读 · 0 评论 -
《Head First 设计模式》学习笔记——代理模式
设计模式代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以使远程的对象(远程代理)、创建开销大的对象(虚拟代理),或需要安全控制的对象(保护代理)。远程代理:可以作为另一个JVM上对象的本地代表。调用代理的方法,会被代理利用网络转发到远程执行,并且结果会通过网络返回给代理,再由代理将结果返回给原创 2014-06-08 17:49:06 · 1782 阅读 · 1 评论 -
《Head First 设计模式》学习笔记——复合模式
模型-视图-控制器(MVC模式)是一种非常经典的软件架构模式,在UI框架和UI设计思路中扮演着非常重要的角色。从设计模式的角度来看,MVC模式是一种复合模式,它将多个设计模式在一种解决方案中结合起来,用来解决许多设计问题。MVC模式把用户界面交互分拆到不同的三种角色中,使应用程序被分成三个核心部件:Model(模型)、View(视图)、Control(控制器)。————题记设计模式原创 2014-06-08 11:30:06 · 1561 阅读 · 1 评论 -
《Head First 设计模式》学习笔记——状态模式
在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到。然后使用if... ellse语句来做状态判断来进行不同情况的处理。但是对复杂状态的判断就显得“力不从心了”。随着增加新的状态或者修改一个状体(if else(或switch case)语句的增多或者修改)可能会引起很大的修改,而程序的可读性,扩展性也会变得很弱。维护也会很麻烦。那么原创 2014-06-02 16:06:56 · 1341 阅读 · 1 评论 -
《Head First 设计模式》学习笔记——策略模型
我们全都使用别人设计好的库与框架。我们讨论库与框架、利用他们的API编译成我们的程序、享受运用别人的代码所带来的优点。看看java api它所带来的功能:网络、GUI、IO等。库与框架长久以来,一直扮演着软件开发过程的重要角色,我们从中挑选所要的组件,把他们放进合适的地方。但是,库与框架无法帮助我们将应用组织成容易了解、容易维护、具有弹性的架构,所以要设计模式。设计模式不会直接进入你的代码中,原创 2014-06-01 20:31:45 · 1182 阅读 · 0 评论 -
《Head First 设计模式》学习笔记——命令模式
在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)————题记设计模式命令模式:将“请求”封装成对象,以便使用不同原创 2014-06-01 22:15:02 · 1149 阅读 · 0 评论