23种设计模式学习笔记
ALL--IN
在追求技术的道路上,不断前行~
展开
-
简单工厂模式
public class OperationFactory{ public static Operation createOperate( string operate) { Operation oper = null; switch (operate) { case “+”: oper = new Operation转载 2017-02-04 18:40:56 · 127 阅读 · 0 评论 -
策略模式
Strategy:定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。abstract class Strategy{ public abstract void AlgorithmInterface();}class ConcreteStrategyA extends Strategy{ @override转载 2017-02-04 18:47:55 · 119 阅读 · 0 评论 -
装饰器模式
把所需的功能按正确的顺序串联起来进行控制。Decorator:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。abstract class Component{ public abstract void Operation();}class ConcreteComponent extends Component{ @override转载 2017-02-04 19:32:34 · 133 阅读 · 0 评论 -
代理模式
Proxy,为其他对象提供一种代理以控制对这个对象的访问。abstract class Subject{ public abstract void Request();}class RealSubject extends Subject{ @override public void Request() { 真实请求的代码实现;}}class Pr转载 2017-02-05 10:23:09 · 168 阅读 · 0 评论 -
模板方法模式
当要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,通常考虑用模板方法模式来处理。模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。abstract class AbstractClass{ //模板方法,给出了逻辑的骨转载 2017-02-05 11:04:02 · 145 阅读 · 0 评论 -
设计模式简介
引入设计模式的目的:增强系统的可维护性。设计模式一般不能提高软件的功能和性能。 设计模式(Design Patterns):从建筑领域而来,是对软件设计中普遍存在而又反复出现的各种问题,所提出的解决方案。设计模式并不直接用来完成程序代码的编写,而是描述在各种不同的情况下,要如何解决问题的一种方案。四人组针对创建优秀的面向对象设计提出的建议:1、针对接口进行设计;转载 2017-02-04 17:52:54 · 208 阅读 · 0 评论 -
外观模式
Facade,为子系统中的一组接口提供一个一致的界面。此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。class SubSystemOne{ public void MethodOne() { 具体实现;}}class SubSystemTwo{ public void MethodTwo() { 具体实现;}}c转载 2017-02-06 13:04:43 · 197 阅读 · 0 评论 -
建造者模式
建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。如果用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。//Product类--产品类,由多个部件组成。class Product{ List parts = new List(); public vo转载 2017-02-06 13:11:09 · 192 阅读 · 0 评论 -
观察者模式
发布-订阅(Publish/Subscribe)模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象。这个主体对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。//Subject类,抽象通知者,用抽象类或接口实现,保存所有观察者的引用,提供增加、删除观察者的接口。abstract class Subject{ pr转载 2017-02-09 17:20:30 · 125 阅读 · 0 评论