Java 设计模式

来源:互联网 发布:计划软件手机版 编辑:程序博客网 时间:2024/05/16 12:49
* Java 设计模式
  设计模式是对软件设计中普遍存在的各种问题,所提出的 解决方案
  使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性
* 设计模式原则
  1、开闭原则:
     开闭原则的意思是:对扩展开放,对修改封闭。在程序需要进行扩展的时候,不能去修改或影响原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性更好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类
  2、里氏代换原则:
     对实现抽象化的具体步骤的规范
  3、依赖倒转原则:
     这个原则是开闭原则的基础,核心内容:针对接口编程,高层模块不应该依赖底层模块,二者都应该依赖抽象而不依赖于具体
  4、接口隔离原则:
     使用多个隔离的接口,比使用单个庞大的接口要好。其目的在于降低耦合度
  5、单一职责原则:
     不能将太多的职责放在一个类中
  6、最少知道原则:
     一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立
  7、合成复用原则:
     在一个新的对象里通过关联关系(组合关系、聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的。简而言之,尽量多使用 组合/聚合 的方式,尽量少使用甚至不使用继承关系
* 设计模式分类
  通常来说设计模式分为三大类:
  创建型模式,共5种:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。
  结构型模式,共7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

************************************************************************************************************
* 工厂模式
  在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象
  在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。例如用工厂来创建 人 这个对象,如果我们需要一个男人对象,工厂就会为我们创建一个男人;如果我们需要一个女人,工厂就会为我们生产一个女人
 1)工厂模式通常分为:
   普通工厂模式
   多个工厂方法模式
   静态工厂方法模式
总结:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。在以上的三种模式中,第一种如果传入的字符串有误,不能正确创建对象,第三种相对于第二种,不需要实例化工厂类,所以,大多数情况下,我们会选用第三种——静态工厂方法模式

* 抽象工厂模式
  抽象工厂模式(Abstract Factory Pattern)是一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来
  抽象工厂是一个父类工厂,可以创建其它工厂类。所以我们也叫它 “工厂的工厂”

  因此工厂方法模式、抽象工厂模式最大的区别在于:
  工厂方法模式:针对的是 一个产品等级结构。
  抽象工厂模式:针对 多个产品等级结构。
************************************************************************************************************
* 适配器模式
  当你想使用一个已有的类,但是这个类的接口跟你的又不一样,不能拿来直接用,这个时候你就需要一个适配器来帮你了

  其主要作用就是在旧的接口、新的接口之间完成适配  

适配器要求:
  1、适配器必须实现原有的旧的接口
  2、适配器对象中持有对新接口的引用,当调用旧接口时,将这个调用委托给实现新接口的对象来处理,
     也就是在适配器对象中组合一个新接口。

1)适配器模式的三个特点:
   适配器对象 实现原有接口
   适配器对象 组合一个实现新接口的对象(这个对象也可以不实现一个接口,只是一个单纯的对象)
   对适配器原有接口方法的调用被委托给新接口的实例的特定方法
************************************************************************************************************
* 装饰者模式
  装饰者模式就是动态地把职责附加到已有对象上去,实现功能扩展。这种特性,使得装饰者模式提供了比继承更具有弹性的解决方案

* 观察者模式
  观察者模式(Observer Pattern)就是一种 “发布者-订阅者” 的模式。有时也被称为 “模型-视图”模式、“源-监听者”模式等。在这种模式中,由一个目标对象来管理所有依赖与它的观察者对象,并且当这个目标对象自身发生改变时,会主动向它的观察者们发出通知

* 单例模式
  单例模式(Singleton Pattern),顾名思义,就是被单例的对象只能有一个实例存在。单例模式的实现方式是,一个类能返回对象的一个引用(永远是同一个)和一个获得该唯一实例的方法(必须是静态方法)。通过单例模式,我们可以保证系统中只有一个实例,从而在某些特定的场合下达到节约或者控制系统资源的目的。

  当你只需要一个实例对象的时候,就可以考虑使用单例模式。比如在资源共享的情况下,避免由于多个资源操作导致的性能或损耗等就可以使用单例模式






0 0