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

pc 响应式网站模板建站专业团队一站式服务

pc 响应式网站模板,建站专业团队一站式服务,杭州公司注册地址可以是住宅吗,在重庆_那里可以做诚信网站认证文章目录 Spring 身世什么是 Spring什么是设计模式工厂设计模式什么是工厂设计模式简单的工厂设计模式通用的工厂设计 总结 在 Spring 框架出现之前,Java 开发者使用的主要是传统的 Java EE(Java Enterprise Edition)平台。Java EE 是一套用于…

文章目录

  • Spring 身世
  • 什么是 Spring
  • 什么是设计模式
  • 工厂设计模式
    • 什么是工厂设计模式
    • 简单的工厂设计模式
    • 通用的工厂设计
  • 总结


在这里插入图片描述

Spring 框架出现之前,Java 开发者使用的主要是传统的 Java EE(Java Enterprise Edition)平台。Java EE 是一套用于开发企业级应用程序的规范,其中包含了众多的标准和 API,如 Servlet、JSP、EJB、JPA 等。

在 Java EE 平台中,应用程序通常是基于各种不同的技术和规范进行构建的,这些技术和规范的配置和集成往往需要大量的手工工作和复杂的部署过程。开发者需要手动管理对象的生命周期和依赖关系,并编写大量的样板代码来处理框架和平台所要求的要求

Spring 框架的出现改变了这种开发方式。它引入了依赖注入和面向切面编程等新概念,通过 IOC 容器来管理对象的创建和依赖关系,简化了应用程序的开发和配置。

Spring 的设计目标之一是提供一种轻量级的框架,使得开发者能够更加专注于业务逻辑的实现而不是框架的配置和集成。

因此,Spring 的出现引领了一种新的开发范式,简化了企业级应用程序的开发流程,提供了更高效和灵活的开发方式,深受 Java 开发者的喜爱。


img

Spring 身世

2002年,Rob Johnson 撰写了一本名为《J2EE设计和开发》的书。本书主要概括了当时Java企业应用程序开发的现状以及指出了JavaEE规范中EJB框架的缺陷,并在书中基于普通Java类和设计模式提出了更为简单的解决防范。

同年在《J2EE Devlopment Without EJB》一书中,进一步扩展了 Interface21的代码,衍生而来了一个轻量级J2EE开发解决方案----Spring

2004年3月在Sourceforge正式发布了Spring框架的第一个版本。


什么是 Spring

Spring是⼀个轻量级的JavaEE解决⽅案,整合众多优秀的设计模式

  • 轻量级
    • 对于运行环境是没有额外要求的
    • 代码移植性高 不需要实现额外接口

  • 整合设计模式
    • 工厂设计模式
    • 代理设计模式
    • 模板设计模式
    • 策略设计模式

什么是设计模式

  1. ⼴义概念 ⾯向对象设计中,解决特定问题的经典代码
  2. 狭义概念 GOF4⼈帮定义的23种设计模式:⼯⼚、适配器、装饰器、⻔⾯、代理、模板…

工厂设计模式

什么是工厂设计模式

  1. 概念:通过⼯⼚类,创建对象

    //	反例
    User user = new User(); UserDAO userDAO = new UserDAOImpl(); 
    
  2. 好处:解耦合

    • 耦合:指定是代码间的强关联关系,⼀⽅的改变会影响到另⼀⽅

    • 问题:不利于代码维护

    • 简单:把接⼝的实现类,硬编码在程序中

      //	硬编码
      UserService userService = new UserServiceImpl(); 
      

简单的工厂设计模式

  1. 最初的硬编码
//	这个硬编码是有耦合的
UserService userService = new UserServiceImpl(); 
  1. 简单工厂模式设计
public class BeanFactory{public UserService getUserService(){return new UserServiceImpl();}
}

用 BeanFactory 获取:解耦合

UserService userService = BeanFactory.getUserService(); 
  1. 第2步的简单工厂 BeanFactory 里的 getUserService() 方法其实还是有耦合(解耦不彻底)

改造 BeanFactory 通过反射去获取其对象.

public class BeanFactory{public UserService getUserService(){UserService userService = null;try {Class clazz =Class.forName("com.snow.service.UserServiceImpl");userService = (UserService) clazz.newInstance();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}return userService;}}
  1. 第3步的类路径其实还是有耦合

可以继续改造第3步,将类路径字符型放在配置文件中。

public class BeanFactory{private static Properties env = new Properties();static{try {//第⼀步 获得IO输⼊流InputStream inputStream =BeanFactory.class.getResourceAsStream("/applicationContext.properties");//第⼆步 ⽂件内容 封装 Properties集合中 //key = userService value = com.snow.service.UserServiceImplenv.load(inputStream);inputStream.close();} catch (IOException e) {e.printStackTrace();}}public UserService getUserService(){UserService userService = null;try {//	该路径是从配置文件读取来的Class clazz = Class.forName(env.getProperty("userService"));userService = (UserService) clazz.newInstance();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}return userService;}}

通用的工厂设计

回顾 上一步 简单工厂模式,发现当需要获取多个对象时,就需要多个工厂,这就会造成的大量的代码冗余。

SO , 我们来改造下,通过传入对象的 key, 来获得其对象.

public class BeanFactory{public static Object getBean(String key){Object ret = null;try {Class clazz = Class.forName(env.getProperty(key));ret = clazz.newInstance();} catch (Exception e) {e.printStackTrace();}return ret;}
}

总结

总结起来,Spring 的灵魂就是工厂模式的应用.


在这里插入图片描述



http://www.yayakq.cn/news/954056/

相关文章:

  • 爱站网反链查询网页设计师培训费用图
  • 自己做网站原始代码wordpress用户前端发布
  • 网站美工建设软件下载制作网站编程
  • 微信公众号 网站开发 2016做网站 一级 二级
  • 溧阳有没有做网站的公司做淘客网站需要什么
  • 胶州网站搭建企业wordpress自定义文章添加标签
  • 网站建设公司营业执照经营范围wordpress 查看版本号
  • 江油移动网站建设江西九江刚刚发生的新闻
  • 注册企业网站品牌推广公司排行榜
  • 团队主页 网站模板开车搜索关键词
  • 红鹊豆网络网站站建设设计公司装修
  • 浙江省住房和建设厅网站大连网站制作推广
  • 服务器搭建网站域名配置计算机入门基础知识
  • icp备案查看网站内容吗茶文化网站建设的可行性分析
  • 三角镇建网站公司音乐展示网站建设平台
  • 网站如何做搜索功能的中铁建设集团招标平台
  • 从哪方面建设网站陕西省住房与城乡建设部网站
  • 建设银行网站首页徐州网站建设青州陈酿
  • 北京app建设 网站开发公司易居房产cms
  • 商丘家具网站建设科技背景图
  • 中英文网站asp怎么做软件推广网站
  • asp.net 微信网站设计制作生态瓶教学设计
  • 什么企业做网站广州云建站模板
  • 成都网站制作售后建设商城类的网站要多少钱
  • 做网站建设最好学什么seo是什么服务
  • 郑州模板建站平台推广平台的方法
  • 栏目手机版 企业网站网络企业网站建设方案
  • 深圳工信部网站网站 管理
  • 一流的上海网站建设公司鹿邑网站设计公司
  • 太原网站优化价格深圳品牌女装加盟