摘要: 今天看得这个模式那是相当的简单啊。 外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。 门面模式提供一个高层次的接口,使得子系统更易于使用。 门面角色(Facade):客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。 子系统角色(Subsystem):可以同时有一个或者多个子系统。每一个子系统都不是一个单独的类 。每一个子系统都可以被客户端直接调用,... 阅读全文
posted @ 2013-07-19 19:17 蜗牛散步 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 今天差点就不想坚持学习了,不过 还是 觉得 要坚持。 明天后天更要坚持。。 加油! 享元模式以共享的方式高效的支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State)。内蕴状态是存储在享元对象内部并且不会随着环境改变而改变。因此内蕴状态才可以共享。 外蕴状态是随着环境改变而改变的,不可以共享的状态。享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到享元对象内部。外蕴状态与内蕴状态是相互独立的。 享元模式结构: 抽象享元角色(Flyweght)::此角色是所有的具体享元... 阅读全文
posted @ 2013-07-18 19:12 蜗牛散步 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 代理(Proxy)模式给某一个对象提供一个代理, 并由代理对象控制对原对象的引用。 所谓代理,就是一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,可以在客户端和目标对象之间起到中介的作用。 代理模式分为以下几种: 远程代理(Remote):为一个位于不同的地址空间的对象提供一个局域代表对象。这个不同的地址空间可以是在本机器中,也可是在另一台机器中。 虚拟代理(Virtual):根据需要创建一个资源消耗较大的对象,使得此对象只在需要时,才真正采取行动。 保护代理(Protect or Access):控制对一个对象的访问,如果需要,可... 阅读全文
posted @ 2013-07-17 20:01 蜗牛散步 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 装饰(Decorator)模式又名包装(Wrapper)模式[GOF95]。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰模式使用原来被装饰的类的一个子类的实例,把客户端的调用委派到被装饰类。装饰模式的关键在于这种模式是完全透明的。 抽象构建角色(Component):给出一个抽象接口,以规范准备接收附加责任的对象。 具体构建角色(Concrete Component):定义一个将要接收附加责任的类。 装饰角色(Decorator):持有一个构建(Component)对象的实例。并第一个与抽象构建接口一样的接口。 具体装饰角色(Concrete ... 阅读全文
posted @ 2013-07-16 20:43 蜗牛散步 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 合成模式有时又叫做部分-整体模式(Part-Whole)。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。 一个树结构由两种节点组成:树枝节 树叶节点 枝节点可 而一个树叶节点不可以有子节点。除了根节点外,其它节点有且只有一个父节点。 抽象构建角色(component):这是一个抽象角色,它给参与组 接口。这个角色给出共有接口及其默认行为。 树叶构件角色(Lcaf):代表参加组合的树叶对象。一个树叶对象没有下级子对象。 树枝构件角色(Composite):代表参加组合的有子对象的对象,并给出树枝构件对象的行为。 合... 阅读全文
posted @ 2013-07-15 20:38 蜗牛散步 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 一个周末又度过了,不过好像过得有点累,不过再类也要坚持学习。呵呵! 今天就要开始学习“结构模式”中的 适配器模式了。 先来看看定义。 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式有两种形式: 一、类的适配器模式。 目标角色(Target):这是客户端所期待的接口。因为 C#不支持多继承,所以 Target 必须是接口,不可以是类。 源角色(Adaptee):需要适配的类。 适配器角色(Adapter):把源接口转换成目标接口。这一角色必须是类。 二、对象的适配器模式。 目标角色(T... 阅读全文
posted @ 2013-07-14 17:49 蜗牛散步 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 额 今天看的这个模式有点意思哈,原型模式。。。 定义:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。 说到这里要讲一下深拷贝与浅拷贝的定义,深拷贝可以理解成复制一份一模一样的东西复制完后两个互相没有任何联系,而浅拷贝只是刻了一个长得一模一样的类,但是里面的值是共用的。也就是修改了一个类里面的值另外一个也会发送变化。 客户(Client)角色:客户类提出创建对象的请求。 抽象原型(Prototype)角色:这是一个抽象角色,通常由一个 C#接口或抽象类实现。此角色给出所有的具体原型类所需的接口。在 C#中,抽象原型角色通常实现了... 阅读全文
posted @ 2013-07-12 22:14 蜗牛散步 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 今天回来的早,一下班就闪人了。 建造者模式可以将一个产品的内部表象与产品的生成过程分开,从而使一个建造过程生成不同的产品. 通过学习得知,这个建造者模式 就是 一个类聚合了另一个产品建造的抽象类,然后在里面规定了建造的顺序,然后不同的产品可以通过基础抽象类实现自己的复杂内容。至于最后如果进行建造是交给 那个聚合类进行执行,在聚合类里面会调用抽象类中的各个方法去一步步的实现产品的建造,最后就可以获取最终建造完成的抽象类中的产品。 建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的建造。一般而言,此接口独立于应用程序的商业逻辑。模式中直接创建产品对象的是具... 阅读全文
posted @ 2013-07-11 20:35 蜗牛散步 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 学了几天了,终于看到了一个自己还算熟悉的设计模式。 单例模式的特点: • 单例类只能有一个实例。 • 单例类必须自己创建自己的唯一实例。 • 单例类必须给所有其它对象提供这一实例。 单例模式应用: • 每台计算机可以有若干个打印机,但只能有一个 Printer Spooler,避免两个打印作业 同时输出到打印机。 • 一个具有 的表可以有多个用户同时使用,但数据库中只能有一个地方分配 自动编号主键 下一个主键编号。否则会出现主键重复。 使用条件:在一个系统要求一个类只有一个实例时才应当使用单例模式,反过来,如果一个类可以有几个实例共存,就不要... 阅读全文
posted @ 2013-07-10 20:14 蜗牛散步 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 干什么事都贵在坚持,所以学习也不例外,加油坚持每天学一点。 今天要看的是抽象工厂模式。 据学习得知 抽象工厂 是将产品的实例化调用递交给抽象基类下面的子类负责调用。 是指一个工厂等级结构可以创建出分属于不同产品等级结构的一个产品族里面的所有产品。 抽象工厂(Abstract Factory)角色:担任这个角色的是工厂方法模式的核心,它是与应用系 统商业逻辑无关的。 具体工厂(Concrete Factory)角色:这个角色直接在客户端的调用下创建产品的实例。这个 角色含有 的商业逻辑紧密相关的。 抽象产品(Abstract Product)角色:担任这个角色的类是工厂方法模... 阅读全文
posted @ 2013-07-09 20:34 蜗牛散步 阅读(201) 评论(0) 推荐(0) 编辑