城市直播房产教育博客汽车
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

设计模式Spring中常用的设计模式

2月2日 观潮阁投稿
  设计模式是一种思想,是一种更快更好更优雅地解决问题的一种思想。这种思想在很多优秀的框架中都有落地。比如Spring框架。
  接下来,我将从我的角度出发,粗浅的想一下,Spring框架中常用的一些设计模式。
  Spring框架核心解决的问题是什么呢?个人理解是为了解决对象之间复杂的依赖关系,降低耦合。或者可以这么说,做项目我们也可以什么框架都不用,实现功能的时候,创建多个类,自己去维护类什么时候创建、使用、销毁等生命周期以及类之间的关系。自己维护的很好或者功能很简单的话,也可以不使用框架。框架本身也就是一个黑盒工具而已,开源使我们可以将其白盒化。
  既然Spring框架的核心内容假设是解决对象之间复杂的依赖关系。通俗来说便是要啥给啥。为了实现这个目的,Spring核心的IOC容器出现了,对象都放在这个容器里,需要的时候从里面取。那就涉及到几点:
  1。创建对象,保存对象,保存对象之间的关联关系
  2。获取对象1。创建对象
  涉及到如何创建,是只创建一次还是创建多次,有关联关系,先创建A还是先创建B等。单例模式、原型模式、工厂模式、策略模式可以来帮忙。
  工厂模式:
  Spring中的BeanFactory、FactoryBean
  单例模式:
  保证一个类仅有一个实例,并提供一个全局访问点。Spring下默认创建的Bean都是单例对象。
  常用的单例模式写法又有很多:最简单的就是懒汉式了,还有饿汉式、注册式、序列化方式、枚举方式等。
  原型模式:
  Java中的克隆对象。以某个对象为原型,复制出一个新的对象。两个对象内容相同,但是对象实例不同。
  用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
  这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。
  策略模式:
  一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
  在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的context对象。策略对象改变context对象的执行算法。
  定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。2。使用对象
  获取对象的时候,有策略方法,也可以通过代理进行功能增强等。策略模式、代理模式、模板方法模式、适配器模式、装饰器模式等
  代理模式:
  为其他对象提供一种代理以控制对这个对象的访问。从结构上来看和装饰器模式类似,但Proxy是控制,更像是一种对功能的限制,而装饰器是增加职责。
  Spring的AOP代理,应该是很出名的。JdkDynamicAopProxy、Cglib2AopProxy。
  模板模式:
  定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。比如JdbcTemplate
  适配器模式:
  将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
  SpringAOP模块对BeforeAdvice、AfterAdvice、ThrowsAdvice三种通知类型的支持实际上是借助适配器模式来实现的,这样的好处是使得框架允许用户向框架中加入自己想要支持的任何一种通知类型,上述三种通知类型是SpringAOP模块定义的,它们是AOP联盟定义的Advice的子类型。
  属于结构型模式,适配类与被适配类之间没有必然联系。满足hasa关系。
  装饰器模式:
  属于结构型模式。满足isa关系。
  Spring中用到的包装器模式在类名上有两种表现:一种是类名中含有Wrapper,另一种是类名中含有Decorator。基本上都是动态地给一个对象添加一些额外的职责。
  观察者模式:
  定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
  当对象间存在一对多关系时,则使用观察者模式(ObserverPattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。
  Spring中Observer模式常用的地方是Listener的实现。如ApplicationListener。
搜索 投诉 评论 转载

原来,磷酸铁锂才是小鹏P7的解药众所周知,小鹏P7已经实现交付近一年的时间,但是参考特斯拉Model3、比亚迪汉两款直接竞品,前者在销量上其实是存在可进步空间的,那么您会给它的综合表现打多少分?刚刚结束……高中生造无人自行车获奖争议续组委会称符合获奖标准近日,有关高中生造出无人自行车获丘成桐奖的报道引发了社会舆论高度关注。有网友指出,这辆被媒体称为自行车版的特斯拉,与网售的2万元左右的无人自行车一模一样。还有网友认为这个自行车……京东自营店和旗舰店的区别有哪些?京东旗舰店自营店靠谱吗?本篇文章解决的问题:何为京东自营店、京东旗舰店京东自营店和京东旗舰店的区别京东旗舰店和京东自营店哪个靠谱京东自营店和旗舰店的区别有哪些?京东旗舰店、京东自营店靠谱吗?……同价位最佳快充手机荣耀Play5动手玩5月18日荣耀正式举行了即刻来电,天生敢造的主题线上发布会,发布了一款新机荣耀Play5。该机是针对追求超级快充、轻薄手感、以及均衡使用体验的年轻用户专属推出的一款产品。……智能指纹锁电池没用多久就没电了,是锁的问题还是电池的问题?家里的智能锁使用一年多后,出现耗电的问题。明明就是换了电池,没多久又提示没电了,每次回家都要用应急插电接口临时接电才能开门。到底是智能锁的问题还是电池的问题呢?这个……Appium环境部署(六)脚本语言工具或解释器pycharm一、下载1、官网下载http:www。jetbrains。compycharm2、个人分享(留言分享)3、上网输入关键字pycharm搜索二、安装与配置……PHP读取文件内容的五种方式读取文件内容的五种方式分享下php读取文件内容的五种方法:好吧,写完后发现文件全部没有关闭。实际应用当中,请注意关闭fclose(fp);php读取文件内容:……8月13日,小米新系统迎来公测,首批支持13款机型2021雷军年度演讲上,小米一口气发布了四款产品,分别为小米MIX4、小米平板4、小米电视和四足机器人CyberDo,可以说是吊足米粉胃口。但并非所有米粉都关注硬件产品,看发布……苹果的AR智能眼镜可能距离生产开始还有几个月的时间玩懂手机网3月10日资讯,苹果公司对于增强现实硬件的产品一直非常有兴趣,多年来苹果收购了多个这方面的专利来试图推动AR,蒂姆库克也希望借助AR和iPhone相互结合让苹果的技术……设计模式Spring中常用的设计模式设计模式是一种思想,是一种更快更好更优雅地解决问题的一种思想。这种思想在很多优秀的框架中都有落地。比如Spring框架。接下来,我将从我的角度出发,粗浅的想一下,Spri……地球是如何形成的?地球早期经历了什么,才让它成为生命的摇篮?人类是地球上最有智慧的生命,现代科学认为,人类诞生于200多万年前,人类从文明开始到现在也就几千年的时间,能够在短短几千年的时间内走出地球探索宇宙,说明人类科技发展的速度还是非……笔记本电脑怎么连接无线路由器?笔记本电脑怎么连接无线路由器?笔记本电脑要连接到无线路由器,首先得保证无线路由器安装正确。如果无线路由器还没有正确安装好,请按照下面的步骤将路由器安装好。见下图所示。……
支付宝被查!你的钱还安全吗?华为传来好消息,海思自建28nm生产线?台积电也没料到这么快8GBRAM甚至12GBRAM,但是运行起来还是没有苹果流畅什么是PID温控仪?它真的有这么牛吗?一文解析AppleCard,这是一个高利息魅族和小米的差距有多大?摩托罗拉卷疯了?骁龙888plus512G,edges30冠iOS15。4。1发布后苹果已经停止验证iOS15。4为什么大多数人都讨厌曲面屏,各手机的高端机却都是曲面屏?张翠霞未来3双11预算1500元买什么手机好?这次只推荐三款,入手不会踩有人说电商对实体经济造成非常大的冲击,个体工商户该如何应对?
替代吕布英雄出现,专治阿轲,一打三也没问题,上王者就用他凭借绕口令转行出道?秦岚搭档杨树林宋小宝,郭德纲给她当捧哏!掉发脱发,学会这5招,告别秃如其来最热男生短发合集打造最帅型男如何改变多愁善感性格忻州怎么样(忻州哪个地段买房好)人生中第一台车,宝骏RC5更适合?90后车主说出了真心话关于夏天的350字日记教材纠错第一人,16年打了22场官司,只为给孩子一本好教材浙江马桶放入洁厕灵厨房水变蓝!男子直犯恶心一直在喝厕所水饱受睡眠障碍困扰?不如看看这一篇票房缩水19亿,半个娱乐圈助阵都无法颓势?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁