java开发模式之总结篇

来源:互联网 发布:东莞网站关键词优化 编辑:程序博客网 时间:2024/05/17 04:26

什么是设计模式

模式:在某些场景下,针对某类问题的某种通用解决方案

场景:项目环境

问题:约束条件,项目目标等

解决方案:通用、可以复用的设计,解决约束,达到目标

设计模式的三个分类

创建型模式:对象实例化的模式,创建型模式解耦了对象的实例化过程

 

结构型模式:把类或对象结合在一起形成更大的结构

 

行为型模式:类和对象如何交互,及划分责任和算法

 

各分类中模式的关键点

创建型模式:

简单工厂:一个工厂类根据传入的参量决定创建出哪一种产品类的实例

工厂方法:定义一个创建对象的接口,让子类决定实例化哪一个类

抽象工厂:创建相关或依赖对象的家族,而无需明确指定具体类

单例模式:某个类只能有一个实例,提供一个全局访问点

生成器模式:封装一个复杂对象的构建过程,并可以按步骤构造

原型模式:通过复制现有的实例来创建新的实例

 

结构型模式:

适配器模式:将一个类的方法接口转换成客户希望的另外一个接口

组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构

装饰模式:动态地给对象添加新的功能

代理模式:为其他对象提供一个代理以控制对这个对象的访问

蝇量模式:通过共享技术有效地支持大量细粒度的对象

外观模式:提供统一的方法来访问子系统的一群接口

桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化

 

行为型模式:

模板模式:定义一个算法结构,而将一些步骤延迟到子类中实现

解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器

策略模式:定义一系列的算法,把它们封装起来,并且使它们可相互替换

状态模式:允许一个对象在其内部状态改变时改变它的行为

观测者模式:对象间的一对多的依赖关系

备忘录模式:在不破坏封装性的前提下,保存对象的内部状态

中介者模式:用一个中介对象来封装一系列的对象交互

命令模式:将命令请求封装为一个对象,使得可用不同的请求来进行参数化

访问者模式:在不改变数据结构的前提下,增加作用于一组对象元素新的功能

责任链:请求发送者和接收者之间解耦,使的多个对象都有机会处理这个请求

迭代器:一种遍历访问聚合对象中各个元素的方法,不暴露该对象的内部结构

对象设计的六大原则

以下原则不是属于设计模式的原则,是面向对象编程的原则,以下原则在开发当中不是必须严格遵守的,就好像数据库设计的三大范式一样,不完全遵守也能开发出来,但是可能扩展性和维护性会大大降低,根据项目和需求的具体情况做分析。

 

组合复用原则

多用组合,少用继承。

实现思路:找到变化部分,抽象,封装变化,

组合和继承何时使用的区分,判断该类是Has-A”还是“Is-A

 

依赖倒置原则

依赖:成员变量、方法参数、返回值

最好要依赖于抽象,不要依赖于具体

高层模块不应该依赖低层模块,二者都应该依赖其抽象

抽象不应该依赖具体,具体应该依赖抽象,也就是抽象类或接口最好没有具体类的成员变量、方法参数、返回值

针对接口编程,不要针对实现编程

 

以抽象为基础搭建的结构比具体类搭建的结构要稳定的多

java中,抽象指的是接口或者抽象类,具体就是具体的实现类

 

开闭原则

对扩展开放,对修改关闭

通过扩展已有软件系统,可以提供新的功能

修改的关闭,保证稳定性和延续性

 

迪米特法则(最少知识原则)

一个对象应该与其他对象保持最少的了解。只与直接朋友交谈。

成员变量、方法参数、方法返回值中需要的类为直接朋友

类与类之间的关系越密切了解越多,耦合度越大

尽量降低类与类之间的耦合

举例:外观模式、中介者模式

 

接口隔离原则:一个类对另一个类的依赖应该建立在最小的接口上

 

里氏替换原则

所有引用基类的地方必须能透明地使用其子类对象

子类在扩展父类功能时不能破坏父类原有的功能

使用继承时,遵循里氏替换原则:

子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。

当子类重载父类方法时,方法的形参要比父类方法的参数更宽松

当子类实现父类的抽象方法时,方法的返回值要比父类更严格

 

里氏替换原则是设计整个继承体系的原则

 

单一职责原则

类应该只有一个导致类变更的理由

即一个类只负责一项职责

 

降低类的复杂度

提高系统的可维护性

修改时降低风险溢出

 

用模式来思考

保持简单:

    尽可能用最简单的方式解决问题,不一定非要使用模式,具体情况具体分析

简单而弹性的设计,一般使用模式是最好的方法

 

设计模式非万能:

模式是通用问题的经验总结

使用模式时要考虑它对其他部分的影响

不需要预留任何弹性的时候,删除掉模式

平衡与妥协

 

何时需要模式:

找出设计中会变化的部分,通常就是需要考虑模式的地方

重构的时候

 

重构的时间就是模式的时间:

重构就是改变代码来改进组织方式的过程

利用模式来重构



阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 道里医院乳腺病 道钉 不锈钢道钉 道钉灯 铁路道钉 螺纹道钉 道钉厂家 道钉锚固剂 道钉图片 道钉撬 道钉胶水 太阳能道钉灯 道钉撬是什么杠杆 一眉道长 日常系道长 青城道长 千鹤道长 陆道长很忙 道长 四眼道长 驱魔道长国语高清免费观看 驱魔道长国语高清 道门生 万界建道门 都市道门传人 道门法则吧 道门传承系统 道门天师陈诚一姜老头 道门弟子 道门鬼差 道门法则txt 道门崛起系统 道门法则txt下载 道门复兴系统 道门养成系统 道门高手在都市 100道快问快答题目情侣 符道问仙 飞道问剑 电动道闸门 小区道闸门厂家