Java 设计模式
来源:互联网 发布:计划软件手机版 编辑:程序博客网 时间:2024/05/16 12:49
* Java 设计模式
设计模式是对软件设计中普遍存在的各种问题,所提出的 解决方案
使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性
* 设计模式原则
1、开闭原则:
开闭原则的意思是:对扩展开放,对修改封闭。在程序需要进行扩展的时候,不能去修改或影响原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性更好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类
2、里氏代换原则:
对实现抽象化的具体步骤的规范
3、依赖倒转原则:
这个原则是开闭原则的基础,核心内容:针对接口编程,高层模块不应该依赖底层模块,二者都应该依赖抽象而不依赖于具体
4、接口隔离原则:
使用多个隔离的接口,比使用单个庞大的接口要好。其目的在于降低耦合度
5、单一职责原则:
不能将太多的职责放在一个类中
6、最少知道原则:
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立
7、合成复用原则:
在一个新的对象里通过关联关系(组合关系、聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的。简而言之,尽量多使用 组合/聚合 的方式,尽量少使用甚至不使用继承关系
* 设计模式分类
通常来说设计模式分为三大类:
创建型模式,共5种:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
************************************************************************************************************
* 工厂模式
在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。例如用工厂来创建 人 这个对象,如果我们需要一个男人对象,工厂就会为我们创建一个男人;如果我们需要一个女人,工厂就会为我们生产一个女人
1)工厂模式通常分为:
普通工厂模式
多个工厂方法模式
静态工厂方法模式
总结:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。在以上的三种模式中,第一种如果传入的字符串有误,不能正确创建对象,第三种相对于第二种,不需要实例化工厂类,所以,大多数情况下,我们会选用第三种——静态工厂方法模式
* 抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来
抽象工厂是一个父类工厂,可以创建其它工厂类。所以我们也叫它 “工厂的工厂”
因此工厂方法模式、抽象工厂模式最大的区别在于:
工厂方法模式:针对的是 一个产品等级结构。
抽象工厂模式:针对 多个产品等级结构。
************************************************************************************************************
* 适配器模式
当你想使用一个已有的类,但是这个类的接口跟你的又不一样,不能拿来直接用,这个时候你就需要一个适配器来帮你了
适配器对象 实现原有接口
适配器对象 组合一个实现新接口的对象(这个对象也可以不实现一个接口,只是一个单纯的对象)
对适配器原有接口方法的调用被委托给新接口的实例的特定方法
************************************************************************************************************
* 装饰者模式
装饰者模式就是动态地把职责附加到已有对象上去,实现功能扩展。这种特性,使得装饰者模式提供了比继承更具有弹性的解决方案
* 观察者模式
观察者模式(Observer Pattern)就是一种 “发布者-订阅者” 的模式。有时也被称为 “模型-视图”模式、“源-监听者”模式等。在这种模式中,由一个目标对象来管理所有依赖与它的观察者对象,并且当这个目标对象自身发生改变时,会主动向它的观察者们发出通知
* 单例模式
单例模式(Singleton Pattern),顾名思义,就是被单例的对象只能有一个实例存在。单例模式的实现方式是,一个类能返回对象的一个引用(永远是同一个)和一个获得该唯一实例的方法(必须是静态方法)。通过单例模式,我们可以保证系统中只有一个实例,从而在某些特定的场合下达到节约或者控制系统资源的目的。
设计模式是对软件设计中普遍存在的各种问题,所提出的 解决方案
使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性
* 设计模式原则
1、开闭原则:
开闭原则的意思是:对扩展开放,对修改封闭。在程序需要进行扩展的时候,不能去修改或影响原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性更好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类
2、里氏代换原则:
对实现抽象化的具体步骤的规范
3、依赖倒转原则:
这个原则是开闭原则的基础,核心内容:针对接口编程,高层模块不应该依赖底层模块,二者都应该依赖抽象而不依赖于具体
4、接口隔离原则:
使用多个隔离的接口,比使用单个庞大的接口要好。其目的在于降低耦合度
5、单一职责原则:
不能将太多的职责放在一个类中
6、最少知道原则:
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立
7、合成复用原则:
在一个新的对象里通过关联关系(组合关系、聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的。简而言之,尽量多使用 组合/聚合 的方式,尽量少使用甚至不使用继承关系
* 设计模式分类
通常来说设计模式分为三大类:
创建型模式,共5种:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
************************************************************************************************************
* 工厂模式
在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。例如用工厂来创建 人 这个对象,如果我们需要一个男人对象,工厂就会为我们创建一个男人;如果我们需要一个女人,工厂就会为我们生产一个女人
1)工厂模式通常分为:
普通工厂模式
多个工厂方法模式
静态工厂方法模式
总结:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。在以上的三种模式中,第一种如果传入的字符串有误,不能正确创建对象,第三种相对于第二种,不需要实例化工厂类,所以,大多数情况下,我们会选用第三种——静态工厂方法模式
* 抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来
抽象工厂是一个父类工厂,可以创建其它工厂类。所以我们也叫它 “工厂的工厂”
因此工厂方法模式、抽象工厂模式最大的区别在于:
工厂方法模式:针对的是 一个产品等级结构。
抽象工厂模式:针对 多个产品等级结构。
************************************************************************************************************
* 适配器模式
当你想使用一个已有的类,但是这个类的接口跟你的又不一样,不能拿来直接用,这个时候你就需要一个适配器来帮你了
其主要作用就是在旧的接口、新的接口之间完成适配
适配器要求:
1、适配器必须实现原有的旧的接口
2、适配器对象中持有对新接口的引用,当调用旧接口时,将这个调用委托给实现新接口的对象来处理,
也就是在适配器对象中组合一个新接口。
适配器对象 实现原有接口
适配器对象 组合一个实现新接口的对象(这个对象也可以不实现一个接口,只是一个单纯的对象)
对适配器原有接口方法的调用被委托给新接口的实例的特定方法
************************************************************************************************************
* 装饰者模式
装饰者模式就是动态地把职责附加到已有对象上去,实现功能扩展。这种特性,使得装饰者模式提供了比继承更具有弹性的解决方案
* 观察者模式
观察者模式(Observer Pattern)就是一种 “发布者-订阅者” 的模式。有时也被称为 “模型-视图”模式、“源-监听者”模式等。在这种模式中,由一个目标对象来管理所有依赖与它的观察者对象,并且当这个目标对象自身发生改变时,会主动向它的观察者们发出通知
* 单例模式
单例模式(Singleton Pattern),顾名思义,就是被单例的对象只能有一个实例存在。单例模式的实现方式是,一个类能返回对象的一个引用(永远是同一个)和一个获得该唯一实例的方法(必须是静态方法)。通过单例模式,我们可以保证系统中只有一个实例,从而在某些特定的场合下达到节约或者控制系统资源的目的。
当你只需要一个实例对象的时候,就可以考虑使用单例模式。比如在资源共享的情况下,避免由于多个资源操作导致的性能或损耗等就可以使用单例模式
0 0
- [Java] JAVA设计模式
- Java设计模式--Java设计模式介绍
- Java设计模式-模板设计
- java设计模式-----(设计原则)
- Java设计模式-设计原则
- java设计模式-观察者模式
- Java设计模式-----Singleton模式
- Java设计模式-----Command模式
- Java设计模式-----State模式
- Java设计模式-----Composite模式
- Java设计模式 -- 策略模式
- java设计模式-----策略模式
- java设计模式_Composite模式
- java 设计模式-策略模式
- java设计模式 访问者模式
- java设计模式-代理模式
- java设计模式----适配器模式
- Java 设计模式 --装饰模式
- Mybatis的N+1select问题
- 网页解析器
- 算法 Robert 第四版 准备篇
- 我所了解的软件调试(未完)
- AD10导出文件【摆位图】【上文中comment不是value值得情况】【DXF结构文件】【低版本protel能打开的原理图、PCB文件】
- Java 设计模式
- Java类向XML转换、XML向Java类转换
- ORACLE CHAR,VARCHAR,VARCHAR2,NVARCHAR类型的区别与使用
- 一个oom(out of memory)问题的定位和“”解决“”
- 设计模式_单例模式的Java代码体现Runtime类
- android开发之解决PopWindow中EditText无法复制粘贴问题
- Windows下显示所有环境变量
- 声明式事务
- java基础编程