
Notes of design pattern
文章平均质量分 61
Firehotest
这个作者很懒,什么都没留下…
展开
-
Design Pattern: Iterator and Adaptor
在学习Thinking in Java的书籍的容器类章节时,接触到迭代器模式和适配器模式的知识。结合《大话设计模式》的书籍内容,在此写下相关知识的理解和总结。迭代器模式的目的是创建一个轻量级对象(创建代价小的对象),能忽略序列的具体类型和底层结构地对序列进行遍历和选择元素。正如《大话设计模式》书中所述,提供了一种方法顺序访问(遍历)一个聚合对象(容器)的各个元素,而不暴露该原创 2016-07-23 16:06:49 · 723 阅读 · 0 评论 -
Design Pattern: Singleton
单例模式主要应用于一些本质只需创建一个对象的类,使用这种模式以限制客户端创建对象进行操作时,不能创建多于一个的对象。常见的单例类就如:交互窗口设计中某个功能窗口,不能让客户端每次点击一次窗口打开按钮就打开一个新的一模一样的窗口,这属于浪费资源。那对于如何限制只有一个窗口对象被创建?1)在主窗口的打开子窗口成员函数增加对子窗口对象的引用是否为null的if判断;原创 2016-09-25 03:34:15 · 368 阅读 · 0 评论 -
Design Pattern: Flyweight(享元模式)
虚拟空间(主机)Virtual host:是一种虚拟技术。使得同一台物理服务器可以分割出若干个虚拟服务器。以实现同一台物理服务器上,能部署多个网站。享元模式(FlyWeight)的应用在于存在需要创建多个对象的需求,并且这些对象除了外部状态不同之外,其内部状态都是相同的。这样,我们可以创建享元类来代表这些对象的内部状态,在享元类的方法定义中,定义一个形参以接受外部状态的输入。然后,利用原创 2016-09-25 23:22:19 · 451 阅读 · 0 评论 -
Design Pattern: 简单工厂模式 v.s. 工厂方法模式
凡是工厂模式,无论是简单的工厂模式还是工厂方法模式,其目的都是封装创建对象的过程,降低客户端代码和产品对象的耦合。使得更换对象的时候,客户端的代码不需要大改。简单工厂模式通过定义一个简单工厂类(就是一个实现类)的静态函数,在静态函数内定义一个switch case实现动态地选择返回的对象。假如,用实现计算器的代码作为例子。创建一个运算类的接口(方便多态的实现,向上转型):i原创 2016-09-27 02:10:54 · 591 阅读 · 0 评论 -
Design Pattern: General Idea of Program Design
本篇文章,主要是描述所有设计模式企图达到的目的。是设计程序的通用原则。作为程序员,写程序是为了满足产品提出的需求。但是,往往需求是会变动的,为了减少因为需求变动引起所引起的代码修改量,我们需要降低各部分实现不同功能的代码的耦合度。1)使得在每次接到某个功能的新需求时,只需要修改对应的功能部分即可,而需求不变的部分的代码则可以维持不变。2)亦或者接到新的需求需要添加新的功能时,只原创 2016-09-29 03:28:47 · 406 阅读 · 0 评论 -
Design Pattern: 策略模式和适配器模式
策略模式用于抽象对于同一个对象的不同处理方式,把相同处理方式(内部状态)抽象成一个类,通过策略选择类选择产生对应的策略来处理输入的对象。换个角度想想,其实策略模式需要结合简单工厂模式一起使用,是一种进化版的简单工厂类。可以说策略模式是实现简单工厂模式的一种必要。就像直接把计算器的不同算法加减乘除封装成对象,这其实就是策略模式,再通过简单工厂类中的判断,返回不同的策略对象。(P.S. 工原创 2016-10-02 10:12:02 · 3471 阅读 · 0 评论 -
Design Pattern: Builder Pattern(建造者模式)
建造者模式的意义在于:为了防止客户端程序员因不熟悉某些部件的构造工序或者构成成分,而因为疏忽导致的最终成品残次。打个比方,你要写一个画人的程序。人有一个头,一个身体,双手和双腿。然而,不同的人有不同的尺寸,画出来的各部分的大小也不一样,但是它们的构成是一样的。(在这种情景下,建造者模式便应该浮上脑海了)。这个时候,如果你让客户端程序员直接针对每个人都自己一步步画人的话,很有原创 2017-02-22 08:56:20 · 631 阅读 · 0 评论