Java设计模式

您所在的位置:网站首页 java自学用什么书 Java设计模式

Java设计模式

2023-07-01 15:18| 来源: 网络整理| 查看: 265

1、设计模式6大原则

开闭原则

对扩展开放,对修改关闭。 用抽象构建框架,用实现扩展细节。

里氏代换原则

不要破坏继承体系,子类尽量不要重写父类的方法,如果需要重写,需要保证含义功能跟父类一致。

依赖倒转原则

面向接口编程的精髓。 使用接口或抽象类的目的是制定好规范,把展现细节的任务交给他们的实现类去完成。 减少类与类之间的继承,而是使用接口或者抽象类。

接口隔离原则

客户端不应该依赖它不需要的接 口,即一个类对另一个类的依赖 应该建立在最小的接口上。接口只做一件事情。

迪米特法则

最少知道原则,一个类对于它依赖的类,知道得越好越好。被依赖的类将逻辑封装好,对外提供public方法。

好比租客想通过中介找房子,租客想要一个20平、2000一个月的。这时中介有两种方案提供给租客: 第一种:把所有房源都给租客,租客自己选。 第二种:先按照要求把房源筛选出来,给租客。 如果采用第一种,中介提供两个方法:1、获取所有的room 2、判断该room是否满足条件。 客户调用第一个方法获取room的集合,调第二个方法判断是否合适。客户相当于知道了中介的room集合。 如果采用第二种,中介只提供获取合适room的方法。客户并不知道room的集合。

单一职责原则 一个类,要做什么事情,只做什么事情。

2、Spring中使用的设计模式 工厂设计模式。 Spring使用工厂设计模式,通过BeanFactory和ApplicationContext来创建对象。 单例设计模式。 Spring中的Bean使用单例设计模式。 代理设计模式。 Spring中的AOP使用代理设计模式来增强Bean。 装饰者设计模式。 模板方法。 如Spring提供的各种Template,RestTemplate、JdbcTemplate、JpaTemplate、StringRedisTemplate、KafkaTemplate。 适配器。 如SpringMVC使用适配器HandlerAdapter适配不同Controller。 观察者设计模式。 如Spring中的事件Event发布和订阅。 策略设计模式。 如Resource实现,根据不用的Resource资源,使用不同的策略获取。如URLResource、ClassPathResource、ServletContextResource。 3、Java中的设计模式 什么是设计模式?

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。

设计模式分类? 401339-20170928225241215-295252070.png

各分类模式的关键点

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

401339-20170929202530606-709085396.png

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

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

401339-20170929204041684-1520979160.png

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

401339-20170929204151184-2094793629.png

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

401339-20170929204518044-666328371.png

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

401339-20170929205441153-1950745368.png

1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用。 2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的值(数组的所有元素)拷贝过来,是值而不是引用 。 Java的参数传递,是值的传递,还是引用的传递? java只有值的传递,只不过对于对象而言,传递的是地址值,相当于引用的传递。

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

401339-20170929205627606-1781915371.png

适配器模式包含如下角色: Target:目标抽象类 Adapter:适配器类 Adaptee:适配者类 Client:客户类 类适配器、对象适配器、接口适配器

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

401339-20170929210011122-1282025445.png

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

401339-20170929210140794-1843692006.png

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

401339-20170929210617169-1348842872.png

亨元(蝇量)模式:通过共享技术来有效的支持大量细粒度的对象。

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

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

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

401339-20170929211025028-883324233.png

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

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

401339-20170929211201231-1986841784.png

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

401339-20170929211342028-1513098324.png

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

401339-20170929211501637-186121583.png

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

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

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

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

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

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3