美文网首页
常用设计模式整理

常用设计模式整理

作者: Kim_9527 | 来源:发表于2017-12-09 19:54 被阅读3次

简单工厂模式

  • 用一个单独的类完成创建实例的过程
// Example
// 创建基类
public class Father{...}
// 根据情况创建对应的子类,并覆写必要的方法
public class Son1 : Father {...}
public class Son2 : Father {...}
// 创建工厂类,工厂类根据情况创建需要的实例
public class Factroy
{
  Father father = null;
  swith(operate)
  {
    case "Son1":
      father = new Son1();
    case "...":
      father = ...
  }
  // 后续操作
}

策略模式

  • 分别定义和封装算法家族,这些算法完成相同的工作,只是实现不同
  • 由一个Context类来负责维护需要使用的算法类,而减少客户端的影响,简化了单元测试
// Example
// 创建抽象类
pulic abstract class Father
{
  //定义需要实现的方法
}
// 创建不同算法的类继承抽象类,实现对应的方法
public class Son1 : Father{...}
public class Son2 : Father{...}
// 创建维护类,有维护类保持对算法类的控制,根据情况创建需要的算法
public class Context
{
  // 保有对算法的引用
  Father father;
  // 创建的时候传入需要的实例
  public Context(Father father)
  {
    this.father = father;
  }
} 

装饰模式

  • 动态的给某对象添加额外的职责的模式
  • 将类中的装饰功能分离,留下核心的功能
  • 在根据需要动态的改变类所需要的装饰功能,去除重复的逻辑
  • 主体维持一个装饰(或为空),装饰维持一个装饰(或为空)
// Example
// 抽象类定义操作方法
abstract class Component
{
  public abstract void Operation();
}

// MainObject类定义被装饰对象并添加职责
class MainObject : Component 
{
  public overrive void Operation()
  {
    ......
  }
}
// Decorator类用来装饰抽象类,继承Component
abstract class Decorator : Component
{
  protected Component component;
  
  public void SetComponent(Component component)
  {
    this.component = component;
  }
  
  public override void Operation()
  {
    if(component != null)
    {
      component.Operation();
    }
  }
}

代理模式

  • 为其他对象提供一种代理以控制对这个对象的访问
  • 为一个对象在不同的地址空间提供局部代表
  • 可以隐藏一个对象存在于不同地址空间的事实
  • 用来控制真是对象访问时候的权限
  • 当调用真实对象的时候,代理可以处理另外I的事情
// Example
// 定义代理和引用对象的共同接口
abstact class Subject
{
  public abstract void Request();
}
// 真实调用的类
class RealSubject : Subject
{
  public override void Request()
  {
    ...
  }
}
// 代理类
class Proxy : Subject
{
  RealSubject realSubject;
  public override void Request()
  {
    if(realSubject == null)
    {
      realSubject = new RealSubject();
      ...
    }
    realSubject.Request();
  }
}

工厂方法模式

相关文章

  • 常用设计模式整理

    简单工厂模式: 用一个单独的类完成创建实例的过程 策略模式: 分别定义和封装算法家族,这些算法完成相同的工作,只是...

  • 常用设计模式整理

    ios面试题(整理) ios常用的设计模式有哪些? MVC模式、委托模式、观察者模式(kvo、kvc、通知机制)、...

  • Java 常用设计模式简例

    简述Java常用设计模式 简述Java常用设计模式及设计原则 strate---------策略模式针对接口编程,...

  • java单例模式与线程安全

    设计模式在软件架构设计中被经常使用,掌握常用的设计模式对于设计软件系统非常重要。单例模式作为设计模式中最简单和常用...

  • 知识复盘

    1:熟练使用Android常用性能调优 2:Java常用设计模式 3:Android常用设计模式(架构) 4:An...

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 常用设计模式介绍

    常用设计模式介绍

  • 浅谈设计模式-JS

    前阵子看了《JavaScript设计模式与开发实践》,非常不错的一本书,整理一些最常用的设计模式,以后再补充一些其...

  • 工厂模式

    安卓常用的设计模式 工厂模式(Factory Pattern)是 Android中最常用的设计模式之一。这种类型的...

  • 设计模式

    今天整理一下常用的几种设计模式。这两天看设计模式感觉受益匪浅。 1.单例模式: 定义: 保证一个类只有一个实例,并...

网友评论

      本文标题:常用设计模式整理

      本文链接:https://www.haomeiwen.com/subject/kdeuixtx.html