设计模式
有点发红
这个作者很懒,什么都没留下…
展开
-
《大话设计模式》读书笔记:6个原则
单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这个耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离;如果能够想到多于一个动机去改变一个类,那么这个类就具有多于一个职责,就应该考虑类的职责分离。原创 2012-01-31 13:51:38 · 6290 阅读 · 13 评论 -
《大话设计模式》读书笔记:装饰模式与均值计算实例
装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。装饰模式在不改变原类文件和继承关系的情况下,用被装饰对象的父类新派生一个装饰对象,用装饰对象来包裹被装饰对象(真实对象)以达到装饰(添加新功能/职责)的效果。所谓“装饰”,就是动态地为真实对象添加新的功能。当系统需要新功能的时候,传统的做法是向旧的类中添加的新的代码,这些新加的代原创 2012-02-29 19:10:05 · 3739 阅读 · 4 评论 -
《大话设计模式》读书笔记:策略模式+反射的Java实现
策略模式(Strategy):定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化不会影响到使用算法的用户。策略模式是一种定义一系列算法的方法,从概念上看,所有这些算法完成的都是相同的工作,只是实现上不同,它可以以相同的方式调用所有的算法,减少各种算法类与算法使用类之间的耦合。策略模式是用来封装算法的,但在实践中发现,可以用它来封装几乎任何类型的规则,只要在分析过程中需原创 2012-02-29 17:04:20 · 3963 阅读 · 0 评论 -
《大话设计模式》读书笔记:代理模式与Java的Proxy动态代理
代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。在面向对象编程中,直接引用某些对象会因为种种原因(比如对象创建的开销过大,访问需要安全控制,或者需要跳出当前进程等)带来很多问题,给用户或者系统本身带来不便或者异常。这时,就需要在操作对象(客户端)和被调用对象(真实对象)之间添加一个代理,以协助操作对象控制对被调用对象的访问,起到透明中介的作用。代理模式的应用:一是远程原创 2012-03-02 14:55:42 · 4344 阅读 · 1 评论 -
《大话设计模式》读书笔记:三种工厂模式
简单工厂模式:定义一个工厂类,工厂类中包含了必要的逻辑判断并根据客户端的选择条件动态实例化相关的类。简单工厂模式将类的实例化从客户端延迟到了工厂类中。 工厂方法模式:定义一个用于创建对象的接口(抽象工厂),让子类(工厂类)决定实例化哪一个类(产品类)。工厂方法模式是将简单工厂模式的逻辑判断从单个工厂类的内部移到了客户端中进行,通过实例化不同的工厂类来实例化不同的产品类(功能类)。工厂方法模原创 2012-09-18 22:33:50 · 1738 阅读 · 0 评论 -
《大话设计模式》读书笔记:原型模式与Java的对象克隆
原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。它其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。原型模式的实现,无论是Java还是C#,都是通过克隆(clone)来完成的。虽然具体的实现方式有所不同,但是思想都是一样的:通过调用一个对象实例的克隆方法,创建另一个内部数据与该对象完全相同的实例。原有的对象就是“原型”(prototype)。原创 2012-09-19 22:51:28 · 1934 阅读 · 1 评论 -
《大话设计模式》读书笔记:单例模式与Java同步锁synchronized
单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。在单例模式下,类本身负责保存它的唯一实例,这个类必须保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。单例模式的类中,构造方法(函数/体)被设为private,从而堵死了外部实例化该类的可能。同时,在类中提供一个静态方法负责提供该类的唯一实例,并在实例不存在的情况下试图初始化它。 下面的示例展示了单例模式的典型实原创 2012-09-22 18:14:21 · 6965 阅读 · 0 评论 -
《大话设计模式》读书笔记:建造者模式与观察者模式
1. 建造者模式建造者模式(Builder Pattern),是将一个复杂对象的创建构造与其它功能性方法(或函数)分离到不同的封装之中,使同样的构造过程能够用于不同的功能表示。建造者模式主要分为三个部分:产品、建造者以及指挥者。其中,产品就是封装了功能性方法和成员变量的对象,它在建造者内部创建,并通过建造者提供的public方法返回。建造者封装了产品对象的构造过程,它的唯一作用就是原创 2013-05-14 23:40:03 · 2140 阅读 · 0 评论