龙空技术网

这么详细的Java设计模式详解,还不收藏起来偷着乐?

小程序猿呆呆 131

前言:

目前我们对“模式设计java”可能比较重视,我们都想要了解一些“模式设计java”的相关知识。那么小编同时在网上网罗了一些有关“模式设计java””的相关内容,希望各位老铁们能喜欢,小伙伴们快快来学习一下吧!

设计模式是很多程序员总结出来的优秀实践。曾经在刚开始写项目的时候学习过设计模式,在开发过程中,也主动或者被动的使用过。现在写代码虽说不会特意明确在用哪种设计模式,但潜移默化的写出来公认的优秀实践代码,毕竟看的比较清爽。

为什么再看一遍设计模式,主要有几个原因:

第一,很多优秀的源码基本都使用了设计模式,明确设计模式能够更好的看源码。

第二,很多中间件设计理念也是基于设计模式的,还有其他的语言,都有自己的设计优秀实践。对于我来说,设计模式始于java,不止于java。

第三,有了这种规范,可以更好的和他人沟通,言简意赅。

设计模式的六大原则:单一职责原则,对扩展开放,对修改关闭。开闭原则,类的职责单一。里氏替换原则,子类可以透明替换父类。依赖倒置原则,面向接口编程。接口隔离原则,接口的职责要单一。迪米特法则,降低耦合。

六大原则是基础,所有的设计模式都是基于这六大设计原则进行设计编程的。

二十三种设计模式创建型:单件模式(Singleton Pattern);保证一个类仅有一个实例,并提供一个访问它的全局访问点。减少了内存的开销,避免对资源的多重占用。抽象工厂(Abstract Factory);抽象工厂模式主要设计产品组的概念,就是某一个工厂生产出配套的一系列产品。建造者模式(Builder);分离复杂对象的构建和表示。同样的构建过程可以创建不同的表示。工厂方法模式(Factory Method);任何可以产生对象的方法或类,都可以称之为工厂。工厂可以灵活的控制生产过程,定制权限、修饰、日志。原型模式(Prototype);原型模式用的比较少,用于创建重复对象。需要实现Cloneable 可以选择重写clone()方法。clone分为浅克隆和深克隆。结构型:适配器模式(Adapter Pattern);让两个不兼容的东西可以一起工作。桥接模式(Bridge Pattern);用于抽象化和实现化的解耦。提高了代码的拓展性,并且可以实现代码的动态切换。装饰模式(Decorator Pattern);代理模式是原对象做不了那件事,必须让代理对象去做,主导侧重于代理对象组合模式(Composite Pattern);组合模式是将存在某种包含关系的数据组织在一起,典型的例子就是树状结构。外观模式(Facade Pattern);把内外关系封装起来,对外提供的接口封装到一个类里。由这一个类管理其他的类,对外提供一个统一的接口。这就是门面模式。享元模式(Flyweight Pattern);尽可能的让用户复用已经有的对象,从而避免造成反复创建对象的资源浪费。代理模式(Proxy Pattern);代理就是,一个对象辅助另一个对象去做某件事,同时还可以增加一点辅助功能。行为型:模板方法(Template Method);一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现, 但调用将以抽象类中定义的方式进行。命令模式(Command Pattern);将请求以命令的形式包裹在对象中,并传递给对象,调用对象寻找到处理该命令的合适的对象,并将该命令传递给相应的对象,该对象执行。迭代器模式(Iterator Pattern);提供一个方法,可以顺序访问一个对象内部的各个元素,不需要知道内部构造。现在基本很少自己实现迭代器了,基本成熟的框架或者强大的JDK都会给出访问的方法。进一步封装对象内部的结构,让行为和结构想耦合。观察者模式(Observer Pattern);多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。解释器模式(Interpreter Pattern);构建一种翻译方式,将某种语言或描述翻译成我们很好理解的语言或者描述。中介者模式(Mediator Pattern);各部门内部之间的关系也很复杂时,想添加一个新的部门进来,又要和其他部门打交道。这是我们可以抽出一个部分,让它和其他的部门打交道。这种模式叫调停者。职责链模式(Chain of Responsibility Pattern);责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。备忘录模式(Memento Pattern);在不破坏对象本身结构的情况下,记录对象的一个状态,合适的时候可以恢复到这种状态。策略模式(Strategy Pattern);此接口强行对实现它的每个类的对象进行整体排序。实现此接口的对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器。访问者模式(Visitor Pattern);在结构不变的情况下动态改变对于内部元素的动作。只适合结构固定的程序设计,当程序由增加删除组件的操作时,visitor设计模式是不适合的。所以Visitor会被使用在编译器和语法分析中。状态模式(State Pattern);一个对象有不同的状态,根据状态不同,可能有不同的行为。小结

虽然设计模式在企业的正式开发中并不能全部用到。但是,代码的整洁与编程思路的清晰条理是一个程序员所必须的。

最后,把清华大佬的二十三种设计模式的详细讲解视频分享给大家,希望你们可以喜欢!

获取方式:

1.转发关注小编;

2.私信小编“学习“来拿走吧~

标签: #模式设计java