本文首发公众号【一名打字员】程序员
对不住各位老铁了,年前说好要更几波JAVA的东西,又偷懒了,没办法,在这里用小锤锤偷偷锤了本身几下。因为工做缘由,更新时间不定,各位老铁有问题能够私聊我哈。编程
对于初学者或者是正在向中高级的Java程序猿(打字员)来讲,时刻梳理本身所掌握的知识是十分重要的,近期本打字员会整理一下关于J2EE下面的几种经常使用的设计模式,并逐个解析,但愿你们可以一块儿巩固一下相关掌握的知识点。设计模式
相信不少人都有这个疑问,有的人说在50万行如下的项目中,设计模式基本是没有用的。固然,除了让咱们code显得更加专业以外,在本身所学习或者工做的项目中,适当合理的使用设计模式,可以给项目带来很大的好处。首先,使用了合理的模式,团队里进行沟通协做会很方便,交流成本有时候特别高,特别是在程序员之间。其次恰当的使用设计模式能够用以解决特定场景的问题的一系列方法,帮助咱们改善系统的设计,加强系统的健壮性、可扩展性,为之后铺平道路。网络
最后用网络上的一句归纳来讲,设计模式(Designpattern)就是一套被反复使用、多数人知晓的、通过分类编目的、代码设计经验的总结。框架
在实际的学习或者工做中,你们或多或少的会接触或者使用一些Java的设计模式,在Java中存在23种设计模式,其图以下:学习
其中主要分为三大类:ui
在文末会贴出全部的设计模式,其中本打字员映象里本身经常使用的模式通常有:spa
在学习使用设计模式的时候,咱们须要了解这六大原则:设计
意思就是,咱们在编写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 | 访问者模式 | 行为型 |