当前位置: 首页 > news >正文

网站建设勹金手指下拉外贸高端网站建设

网站建设勹金手指下拉,外贸高端网站建设,网站开发工具的功能包括html,网站排版用什么软件作者#xff1a;学Java的冬瓜 博客主页#xff1a;☀冬瓜的主页#x1f319; 专栏#xff1a;【Framework】 主要内容#xff1a;什么是spring#xff1f;IoC容器是什么#xff1f;如何使代码解耦合#xff1f;IoC的核心原理#xff0c;IoC的优点。依赖注入/对象装配/… 作者学Java的冬瓜 博客主页☀冬瓜的主页 专栏【Framework】 主要内容什么是springIoC容器是什么如何使代码解耦合IoC的核心原理IoC的优点。依赖注入/对象装配/DI。 文章目录 一、什么是Spring?1什么是IoC容器1 理解2 法一传递(存在依赖关系传对象)3 法二使用SpringSpring IoC 核心操作Spring IoC 优点 2什么是DI? 一、什么是Spring? Spring包含了 众多工具方法 的 IoC 容器。 1什么是IoC容器 1 理解 IoC 全称 Inversion of Control翻译为控制反转。因此IoC容器就是控制反转的容器。那啥是 控制反转Spring框架管理Bean的创建工作。即由用户管理Bean变为框架管理Bean ① 举个例子接下来我们举个例子并使用代码来感受啥是个IoC(控制反转)有什么好处 比如建造一个房子粗略的看首先需要打地基然后砌砖最后挂房梁瓦片等。如果用代码实现这样一个粗略的过程看下面代码 //测试类 public class Test {public static void main(String[] args) {House house new House();house.init();} } //房 public class House {public void init(){// 创建房子 依赖于挂房梁等操作Beam beam new Beam();beam.init();System.out.println(House: House create);} } //房梁 public class Beam {private String material;//(杉木)public void init(){// 挂房梁等 依赖于 砌好砖Brick brick new Brick();brick.init();System.out.println(Bean: 房梁木用 this.material);} } //砖 public class Brick {private String redBrick;//红砖public void init(){// 砌砖 依赖于 已经打好地基Foundation foundation new Foundation();foundation.init();System.out.println(Brick: 砌砖用 this.redBrick);} } //地基 public class Foundation {private String rebar;//钢筋private String cement;//水泥public void init(){System.out.println(Foundation: 打地基用 this.rebar this.cement);} }上述代码运行结果如下 ② 理解代码上面的代码中测试类中的main方法运行后会创建一个空House对象再进行House对象的初始化在House对象初始化时会创建一个空的Beam对象然后进行beam对象的初始化(house依赖于beam房子依赖于房梁)beam初始化时会创建Brick对象再进行brick对象的初始化(beam依赖于brick房梁依赖于砌好砖)brick对象初始化时会创建Foundation对象并进行foundation对象的初始化。 简单来说要想建房子得先挂好房梁要想挂房梁得先砌好砖要想砌砖得先打好地基这就是一个逐层调用进行初始化的过程最终建好一个房子。但是这样操作会引入一个很致命的问题代码耦合度非常高 ③ 问题这样互相依赖的过程如果底层的类发生改变上层的类得相应改变。在上面代码中我使用钢筋水泥打地基用红砖来砌砖用杉木来做房梁木在每个类的调用init方法时将所需参数传进去进行材料的初始化(我这里没弄所以都是null)。那么理解到这里我们可以想一个问题如果我不再使用红砖来砌砖而是使用水泥砖了或者我需要制定特定尺寸的砖那么Brick类的属性就需要修改调整。这样在上层调用中(beam)也需要修改在Beam类的init方法中创建了Brick类并使用brick.init(参数)这个方法进行砌砖的初始化那么这里也是需要修改的如果上层还有给brick传参的方法那也还需要改所以这样操作代码耦合度会非常高。 ④ IoC和Spring怎么才能降低耦合减少修改的成本因为上述代码出现高耦合的原因在当前类中的方法中创建当前类所依赖的类的对象并逐层调用初始化对象或者上层的代码给底层的类的属性传参数。 法一当存在依赖关系时在当前类的方法中不再自己创建和销毁所依赖的对象而是让调用者传一个依赖对象给当前类(当前类需要一个成员变量是它所依赖的类)如果这个类还存在其他属性也由调用者提供参数(这样就可保证在我需要修改某一个类的成员或者类型时其他类不需要做修改即实现解耦合)。 法二那如果我不让它逐层调用而是统一交给一个工具去创建对象并初始化并管理对象呢这就是控制反转Spring就是管理对象的这样一个容器。 ⑤ Spring在管理方面Spring是一个 IoC容器它可以管理对象包括创建销毁对象等。在操作方面又因为是个 IoC容器因此可以把对象存进Spring或者从Spring中获取对象。 2 法一传递(存在依赖关系传对象) //测试类 package demo2; public class Test {//测试传对象 解耦合代码public static void main(String[] args) {Foundation foundation new Foundation(xx号钢筋, xx号水泥);Brick brick new Brick(foundation, xx号红砖);Beam beam new Beam(brick, 杉木);House house new House(beam);house.init();} }//House类 package demo2; public class House {private Beam beam;public House(Beam beam){this.beam beam;}public void init(){// 创建房子 依赖于挂房梁等操作beam.init();System.out.println(house: 房子建成);} }//Beam类 package demo2; public class Beam {private Brick brick;private String material;public Beam(Brick brick, String material){this.brick brick;this.material material;}public void init(){// 挂房梁等 依赖于 砌好砖brick.init();System.out.println(Bean: 房梁木用 this.material);} }//Brick类 package demo2; public class Brick {private Foundation foundation;private String redBrick;//红砖public Brick(Foundation foundation, String redBrick){// 砌砖 依赖于 已经打好地基this.foundation foundation;this.redBrick redBrick;//新增}public void init(){this.foundation.init();System.out.println(Brick: 砌砖用 this.redBrick);} }//Foundation类 package demo2; public class Foundation {private String rebar;//钢筋private String cement;//水泥public Foundation(String rebar, String cement){this.rebar rebar;this.cement cement;}public void init(){System.out.println(Foundation: 打地基用 this.rebar this.cement);} } 运行结果 3 法二使用Spring 具体操作看后面的博客 Spring IoC 核心操作 存对象 取对象 Spring IoC 优点 ① 解耦合 ② 使用方便(不再需要手动创建对象) ③ 更加高效(默认情况使用相同类只需要创建一个对象) 2什么是DI? IoCInversion of Control 控制反转是一种设计原则指的是将对象的创建和依赖关系交给容器来完成而不是由对象自己管理依赖对象。 DIDependency Injection 依赖注入)是IoC的一种具体的实现方式它是通过将依赖对象注入到对象中来实现对象之间的解耦。 简而言之IoC是一种思想而DI是IoC的一种具体实现方式。 补充1实现IoC除了DI之外还需要控制反转容器(在Spring中就是Spring容器)和配置信息(xml文件描述对象和依赖关系的元数据)。 补充2① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩(在这里列出这种序号需要的自取)。
http://www.sadfv.cn/news/13911/

相关文章:

  • 网站设置为信任站点成都一网吃尽小程序
  • 沧州英文网站制作中铁三局招聘官网
  • 网站系统分析的主要任务包括广州品牌策划公司有哪些
  • 乐陵市住房和城乡建设局网站前端开发是什么专业
  • 一个自己的网站苏州it外包服务
  • 成都网站制作公司科蓝机械加工信息
  • 卖印花图案设计网站商丘网站建设推广公司
  • 做电商网站需要多少时间搬瓦工安装wordpress
  • 建设网站资质查询宝塔做两个网站
  • 网站建设公司-山而嘉兴行业网站建设
  • 织梦网站模板怎么做如何做好网站关键词布局
  • 响应式网站文字大小福建住房和城乡建设局网站
  • seo网站关键词排名优化设计公司网站推广营销
  • 站长统计app软件只要有足够的粉丝
  • 电商网站建设商业计划书商城网站如何优化
  • wordpress建站显示网站图标centos wordpress安装教程
  • 做逆战网站的名字吗网络营销简介
  • 外国做ppt的网站软件开发模型是对软件开发过程的一种规范描述
  • 网站建设和运营哪家公司好网站背景全屏
  • 外贸网站下载匿名留言墙 wordpress
  • 站长之家站长工具小程序源码库
  • 网站首页效果图怎么做已注册商标查询官网
  • 淘宝客网站推广备案国家级门户网站有哪些
  • 赤坎网站制作免费正规大数据查询平台
  • 央企做的好的网站iis与wordpress
  • 做网站大概百度有哪些产品
  • 做一个网站企业管理系统哪家好
  • 网站方案讲解技巧网页设计实验报告总结
  • 初期网站价值个人网站有什么缺点
  • 网站公司怎么做的php wordpress xmlrpc