`
BlogDown
  • 浏览: 213246 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
观察者模式是对象的行为模式,顾名思义,即存在观察者和被观察者。 观察者模式可以让多个观察者同时监听同一个被观察对象,当被观察对象发生变化时,并通知所有观察者,使各个观察者能作出相应的响应。适当地运用观察者模式,能提高自身代码的设计水平。   观察者模式理解和编码都比较简单,通常包括以下步骤:   1. 设计观察者接口类;   2. 观察者类实现该接口;   3. 设计被观察者抽象类,该类中提供一些方法,如:添加观察者对象,删除观察者对象,把事件通知给各个观察者对象;   4. 设计被观察者类,继承被观察者抽象类,在该类中,可以根据需要在该类中,可以定义方法:被观察者是否发生变化   以上四步 ...
  简介摘要: 代理模式是GOF设计模式中的一种,常用于权限模块的架构设计,其根本的原理是通过将一个代理对象交给调用者,使得调用者不能直接使用相应的功能模块,所 有的调用被传递给代理对象,代理对象负责对真实模块完成调用,在调用者与被调用者之间建立了一个隔离带,我们可以使 代理模式是GOF设计模式中的一种,常用于权限模块的架构设计,其根本的原理是通过将一个代理对象交给调用者,使得调用者不能直接使用相应的功能模块,所有的调用被传递给代理对象,代理对象负责对真实模块完成调用,在调用者与被调用者[bei tiao yong zhe]之间建立了一个隔离带,我们可以使用这个隔离带进行权限检查、对象的延迟[y ...
工厂模式主要负责将大量有共通接口的类实例化,工场模式有以下几种形态 简单工厂(Simple Factory)   又称 静态工厂方法(Static Factory Method) 工厂方法(Factory Method)   又称 多态性工厂(Polymorphic Factory) 抽象工厂(Abstract Factory) 又称 工具箱(Kit or Toolkit) 先说简单工厂模式: 需求:一个水果工厂,为任何来的客人提供水果,现有水果Apple ,Banana,Orange 实现: 定义三个类Apple,Banana,Orange 让他们都实现Fruit接口 -------- ...
8、MEDIATOR 调停者模式: 没使用调停者模式 : 一个过度耦合的系统 : 网状结构 使用调停者模式 后 : 以调停者为 中心的星状结构 /** * User: liuwentao@wentao365.com * Date: 2008-12-9 Time: 15:24:28 * <p/> * note: 调停者角色 */ abstract public class Mediator {     /**      * 事件方法      * @param c      */     public abstract void colleagueChan ...
(缺点:每增加一个具体产品时 ,就要修改工厂方法,工厂方法负责了所有具体产品的创建) 举个例子: ------------------ public interface Fruit { void grow(); void harvest(); void plant(); } -------- ...
  在网络上流畅很广的一篇旧文,暂时没找到原作者,作者用轻松的语言,形象解释了 23 种模式,有很好的启发作用。   创建型模式   1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西, ...
Java设计模式使用率爬行榜 使用频率 所属类型 模式名称 模式 简单定义 5 创建型 Singleton 单件 保证一个类只有一个实例,并提供一个访问它的全局访问点。 5 结构型 Composite 组合模式 将对象组合成树形结构以表示部分整体的关系 ...
需要掌握的JAVA设计模式     设计模式是面向对象思想的集大成,GOF在其经典著作中总结了23种设计模式,又可分为:创建型、结构型和行为型3个大类。对于软件设计者来说,一般的过程就是在熟练掌握语言背景的基础上,了解类库的大致框架和常用的函数和接口等,然后多再在百般锤炼中,提高对软件设计思想的认识。     软件设计者要清楚自己的定位和方向,一味的沉溺于技术细节的思路是制约个人技术走向成熟的毒药。因此,学习软件设计,了解软件工程,是每个开发人员必备的一课。笔者在此不想详细的描述各个设计模式的细节,我想google和baidu上的资料已经多如牛毛了。而且,争取的学习方法也不是了解所有的设 ...
统一建模语言(UML)基础 Java 建模:UML 工作簿 Java 建模:子整体软件开发 Java 建模语言(Java Modeling Language,JML) 本专题为 Java 软件工程师们提供了面向 Java 的设计模式和建模方面相关的文章和教程。帮助读者理解、学习 ...
自从J2EE出现以来,就大大简化了在Java下的企业级开发。但是随着J2EE越来越普遍地被应用到各个领域中,开发者们渐渐意识到需要一种方法来标准化应用程序的开发过程,他们采用的方法是标准化应用程序的结构层。在结构层通 ...
  [cpp] view plaincopy class CPoint3D  
const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。       static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的 ...
1、你一定想知道虚函数是怎么做出来的,对不对?       如果能够了解 C++编译器 对于 虚函数 的实现方式,我们就能够知道为什么虚函数可以做到动态绑定。为了达到动态绑定的目的,C++编译器通过某个表格,在执行期“间接”调用实际上欲绑定的函数。这样的表格称为 虚函数表(vtable)。每一个内含虚函数的类,编译器都会为它做出一个虚函数表,表中的每一个元素都指向一个虚函数的地址。此外,编译器也会为类的对象加上一项成员变量,是一个指向该虚函数表的指针(vptr)。举个例子:   [cpp] view plaincopy
1、多态性和虚函数 我们先看一个例子:   [cpp] view plaincopy #include<iostream.h>
 C++是一种扭转程序员思维模式的语言,一个人思维模式的扭转,不可能轻而易举一蹴而就。 C++是最重要的面向对象语言,因为它站在C语言的肩膀上,而C语言拥有绝对多数的使用者,C++并非纯粹的面向对象程序语言,但有时候混血并不是坏事,纯种不见得就有多好。(所谓纯面向对象语言,是指不管什么东西,都应该存在于对象之中,java就是纯面向对象语言)。C++语言范围何其广大,这部分主题的挑选完全是以MFC Programming所需技术为前提。 1、类及其成员----谈封装       让我们把世界看成是一个由对象(object)所组成的大环境。对象是什么?说白了,“东西”是也!任何实际的物体 ...
Global site tag (gtag.js) - Google Analytics