设计模式
imyfriend
这个作者很懒,什么都没留下…
展开
-
依赖倒置原则之我见
依赖倒置原则(Dependence Inversion Principle),简称DIP。 定义:High level modules should not depend upon low level modules, Both should depend upon abstractions. Abstractions should not depend upon details, De原创 2013-02-11 18:05:01 · 6521 阅读 · 9 评论 -
面向对象的一些术语精解
1、多态:一个对象变量可以引用多种实际类型的现象叫做多态(polymorphism)。在java和c++语言中指的是可以用子类对象赋给父类对象。说道多态,就要说说覆盖(overriding)。覆盖实际上指在同一个函数原型的情况下,将父类的一个实现替换为子类的一个实现。 2、动态绑定:在运行时能够自动的选择调用那个方法的现象叫做动态绑定(dynamic binding)。 3、继承的设计技巧:原创 2013-01-21 09:23:15 · 2011 阅读 · 0 评论 -
迭代器模式之我见
迭代器模式:提供一种方法顺序访问一个集合(数组、链表、哈希表等)中的各个元素,而不暴露其内部的表示。 模式结构: 把访问的任务放在迭代器上,而不是集合上,这样可以简化集合的接口和实现,让责任各得其所。 迭代器意味着没有次序,只是取出所有元素,并不表示取出元素的先后就代表元素的大小次序。 迭代器模式体现了单一职责原则。原创 2013-04-21 16:01:39 · 1151 阅读 · 0 评论 -
组合模式之我见
组合模式:允许客户将对象组合成树形结构来表现"整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。 模式结构: 组合模式让我们能用树形方式创建对象的结构,树里面包含了组合以及个别的对象。使用组合结构,我们能把相同的操作应用在组合和个别对象上。换句话说,在大多数情况下,我们可以忽略对象组合和个别对象之间的差别。 包含其他组件的组件为组合对象;不包含其他组件的组件为叶原创 2013-06-02 21:17:48 · 2224 阅读 · 0 评论 -
状态模式之我见
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类的行为。 模式结构: 其他: 通常来说,当状态转换是固定的时候,就适合放在context中;然而,当转换是动态的时候,通常就会放在状态类中,但是此时会出现一个缺点:状态类之间产生了依赖。可以尝试通过给context增加接口setState来减少依赖。 客户不会直接和状态打交道。状态是用在context原创 2013-07-13 18:54:34 · 809 阅读 · 0 评论 -
策略模式之我见
一、使用场景 1、报价管理系统 商场/公司的报价是比较复杂的,客户不同,时间不同,往往价格不同。 对不同的客户要报不同的价格,比如: 对普通客户或新客户报全价;对老客户报价,根据年限的不同,给予一定的折扣;对于大客户报价,根据消费金额,给予一定的折扣;根据报价人员职务的高低,决定了他是否有权对价格进行一定的浮动折扣; 在不同的时间报不同的价格,比如: 公司周年庆;春原创 2013-08-06 17:03:38 · 694 阅读 · 0 评论 -
代理模式之我见
代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。 使用代理模式创建代理对象,让代理对象控制某对象的访问(保护代理),被代理的对象可以是远程的对象(远程代理),创建开销大的对象或需要安全控制的对象(虚拟代理)。 类图: 代理模式和装饰者模式不同:装饰者为对象增加行为,代理模式是控制对象的访问。 代理模式和适配器模式不同:适配器模式会改变对象适配的接口,代理模式则实现原创 2013-08-17 19:26:19 · 821 阅读 · 0 评论