J2EE下的常用设计模式

简单说两句

本文首发公众号【一名打字员】

对不住各位老铁了,年前说好要更几波JAVA的东西,又偷懒了,没办法,在这里用小锤锤偷偷锤了自己几下。由于工作原因,更新时间不定,各位老铁有问题可以私聊我哈。

对于初学者或者是正在向中高级的Java程序猿(打字员)来说,时刻梳理自己所掌握的知识是十分重要的,近期本打字员会整理一下关于J2EE下面的几种常用的设计模式,并逐个解析,希望大家能够一起巩固一下相关掌握的知识点。

为什么要用设计模式

相信很多人都有这个疑问,有的人说在50万行以下的项目中,设计模式基本是没有用的。当然,除了让我们code显得更加专业之外,在自己所学习或者工作的项目中,适当合理的使用设计模式,能够给项目带来很大的好处。首先,使用了合理的模式,团队里进行沟通协作会很方便,交流成本有时候特别高,特别是在程序员之间。其次恰当的使用设计模式可以用以解决特定场景的问题的一系列方法,帮助我们改善系统的设计,增强系统的健壮性、可扩展性,为以后铺平道路。

最后用网络上的一句概括来说,设计模式(Designpattern)就是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

模式概览

在实际的学习或者工作中,大家或多或少的会接触或者使用一些Java的设计模式,在Java中存在23种设计模式,其图如下:

Java的23种设计模式

其中主要分为三大类:

  • 创建型模式
  • 结构型模式
  • 行为型模式

在文末会贴出所有的设计模式,其中本打字员映象里自己常用的模式一般有:

  1. 工厂模式、工厂方法模式、抽象工厂模式、单例模式等,这些都属于创建型模式。
  2. 观察者模式,模版模式,策略模式等,这些都属于行为型模式。
  3. 包装模式,适配器模式,组合模式,代理模式等,这些属于结构型模式。

六大原则

在学习使用设计模式的时候,我们需要了解这六大原则:

  • 单一原则

意思就是,我们在编写bug,不对,编写代码的时候在一个功能类中尽量负责单一的功能,这个功能应当尽量的烤炉周全,保持极致。

  • 里氏替换原则

这个原则可能大家乍一眼不怎么能够理解,与C#中里氏替换原则一致,这个意思就是一个子类能够替换父类并且能够正常的工作。有机智的童鞋要举手提问了,那Java中的多态会不会违背这种原则呢,其实不然。所谓的里氏替换原则就是让你的某一段程序耦合于基类或者接口,而不是具体继承了基类的子类或实现接口的具体类型。仅替换子类不会让你这个程序的属性有所改变。所谓多态机制,则是给了你达成上述原则的其中一种能力。

  • 接口隔离原则

这个应该比较好理解,见字如意。这个接口也叫做接口最小化原则,强调的是一个接口拥有的行为应该尽可能的小。

  • 依赖倒置原则

这个强调了高层模块不该依赖于低层模块,二者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象。

  • 迪米特原则

也称最小知道原则,即一个类应该尽量不要知道其他类太多的东西,不要和陌生的类有太多接触。

  • 开闭原则

其实本打字员也对这个原则有点模糊,但是大体的意思就是一句话对修改关闭,对扩展开放。在网上浏览相关文章的时候提到过一句在大话设计模式中出现的总结,“用抽象构建框架,用细节实现扩展”。我想这句话也许是对整体的原则做出的最好的解释了吧。

写在最后

说实话,本打字员也不知道自己何时放弃,会停止编程,会不再撸代码,因为这份工作对精神上的消耗确实很大。但是既然我们依然坚持在这个岗位上,我们就应该本着一名程序员的心态,去学习新的技术与知识,维护和巩固现有的知识点,为成为自己想象中的自己而努力吧。

附:

模式名称所属分类
Abstract Factory抽象工厂模式创建型
Builder建造模式创建型
Factory Method工厂方法模式创建型
Prototype原始模型模式创建型
Singleton单例模式创建型
Adapter适配器(变压器)模式结构型
Bridge桥梁模式结构型
Composite合成模式结构型
Decorator装饰模式结构型
Facade门面模式结构型
Flyweight享元模式结构型
Proxy代理模式结构型
Chain Of Responsibility责任链模式行为型
Command命令模式行为型
Interpreter解释器模式行为型
Iterator迭代子模式行为型
Mediator调停者模式行为型
Memento备忘录模式行为型
Observer观察者模式行为型
State状态模式行为型
Strategy策略模式行为型
Template Method模板方法模式行为型
Visitor访问者模式行为型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值