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

营销网站建设合同网站建设要学编程吗

营销网站建设合同,网站建设要学编程吗,网站前台空白,搭建网站公司哪家好1.什么是Spring? spring是一个开源轻量级的java开发应用框架,可以简化企业级应用开发 轻量级 1.轻量级(对于运行环境没有额外要求) 2.代码移植性高(不需要实现额外接口) JavaEE的解决方案 Spring更像是一种解决方案,对于控制层,它有Spring…

1.什么是Spring?

spring是一个开源轻量级的java开发应用框架,可以简化企业级应用开发

  • 轻量级

1.轻量级(对于运行环境没有额外要求)

2.代码移植性高(不需要实现额外接口)

  • JavaEE的解决方案

        Spring更像是一种解决方案,对于控制层,它有Spring MVC,对于Service层,有对应的Aop可以解决service中的事务控制和日志处理的问题,现有的持久化方案像jdbc、mybatis作整合解决Dao的问题。最大的特点就是每个层次都可以有对应的解决方案。

2.设计模式

1.广义概念   

面向对象设计中,解决特定问题的经典代码

2.狭义概念

GOF4人定义的23种设计模式:工厂、适配器、装饰器、门面、代理、模板等

3.工厂设计模式 

        3.1什么是工厂设计模式

1.概念:通过工厂类、创建对象

        User user=new User()

        UserDao userDao=new UserDaoImpl();

2.好处:解耦合

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

        问题:不利于代码维护

        简单理解:把接口的实现类,硬编码在程序中

  • 通过建立工厂的方式和反射机制创建对象 解耦合
    public class BeanFactory {/*对象创建的方式1.直接调用构造方法 创建对象 UserService userService = new UserServiceImpl();2.通过反射的形式 创建对象 解耦合Class clazz=CLass.forName("basic.UserServiceImpl");UserService userService=(UserService)clazz.newInstance();*/public static UserService getUserService() throws ClassNotFoundException, InstantiationException, IllegalAccessException {Class clazz=Class.forName("basic.UserServiceImpl");UserService userService=(UserService)clazz.newInstance();return userService;}
    }

 通过创建工厂和反射机制的方式创建对象,可以解耦合,减少代码的关联性,可以发现,Class.forName(字符串)可以通过配置文件的方式解耦合,这样代码发生变化时,仅仅只需要更改配置文件中的值。

package basic;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class BeanFactory {/*对象创建的方式1.直接调用构造方法 创建对象 UserService userService = new UserServiceImpl();2.通过反射的形式 创建对象 解耦合Class clazz=CLass.forName("basic.UserServiceImpl");UserService userService=(UserService)clazz.newInstance();*/private static Properties properties;static{//仅仅需要加载一次 读取application.properties文件//第一步回去输入流InputStream resourceAsStream = BeanFactory.class.getResourceAsStream("/application.properties");//第二部 文件内容封装到Propertiesproperties = new Properties();try {properties.load(resourceAsStream);} catch (IOException e) {e.printStackTrace();}}public static UserService getUserService() throws ClassNotFoundException, InstantiationException, IllegalAccessException {Class clazz=Class.forName(properties.getProperty("userService"));UserService userService=(UserService)clazz.newInstance();return userService;}
}

         该方法通过读取配置文件的方式,对字符串进行解耦合。如果我们在创建一个UserDao的方式也解决了耦合,但是会发现,当我有一个对象需要解耦合,我们就要提供一个对应的方法。我们希望能够设计一个通用工厂的方式。

     配置文件展示

package basic;import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;public class BeanFactory {/*对象创建的方式1.直接调用构造方法 创建对象 UserService userService = new UserServiceImpl();2.通过反射的形式 创建对象 解耦合Class clazz=CLass.forName("basic.UserServiceImpl");UserService userService=(UserService)clazz.newInstance();*/private static Properties properties;static{//仅仅需要加载一次 读取application.properties文件//第一步回去输入流InputStream resourceAsStream = BeanFactory.class.getResourceAsStream("/application.properties");//第二部 文件内容封装到Propertiesproperties = new Properties();try {properties.load(resourceAsStream);} catch (IOException e) {e.printStackTrace();}}
//    public static UserService getUserService() throws ClassNotFoundException, InstantiationException, IllegalAccessException {
//        Class clazz=Class.forName(properties.getProperty("userService"));
//        UserService userService=(UserService)clazz.newInstance();
//        return userService;
//    }/*通用工厂*/public static Object getBean(String beanName) throws ClassNotFoundException, InstantiationException, IllegalAccessException {Class clazz=Class.forName(properties.getProperty(beanName));return clazz.newInstance();}
}

        至此,可以发现,我们提供的工厂方法可以被任意对象所调用,并创建通用的对象,这样我们解决代码耦合性的同时,也解决了一个对象创建一个工厂的问题,减少了代码的冗余。

3.2通用工厂的使用方式

1.定义类型

2.通过配置文件的配置告知工厂(application.properties)

key=value

3.通过工厂来获得类的对象

        BeanFactory.getBean(key)

总结

         通过本文的学习,我们了解了Spring框架的基本概念以及如何通过工厂设计模式和反射机制实现代码的解耦。Spring的IoC和AOP特性使得企业级应用开发更加简单和高效。工厂模式通过将对象的创建和使用分离,进一步提高了代码的可维护性和扩展性。希望本文能帮助你更好地理解Spring和设计模式的应用。

http://www.dtcms.com/a/599321.html

相关文章:

  • 百度快照比网站上线时间早网站后台生成器
  • 北京微网站设计制作服务婚介所网站开发费用
  • 长沙做网站一般多少钱邢台123最新求职招聘信息
  • 国内有做外汇的正规网站吗大众点评网怎么做团购网站
  • 电脑有固定IP 做网站网站开发外包接单
  • 天津建站模板企业文化宣传
  • 济南网站建设流程江苏网站建设渠道
  • 石家庄网站开发公司python如何做网站
  • 长春网站优化哪家好wordpress 4.7.1下载
  • 十堰网站建设培训学校网站的绝对路径怎么做
  • 西安设计网站的公司泉州网站建设服务
  • 网站标题关键词描述wordpress横幅
  • 360移动建站服务营销案例100例
  • 做网站策划营销推广网络营销以什么为基础
  • 免费购物网站程序公司网站费用计入什么科目
  • 简单公司网站医院设计机构
  • 下载宝硬盘做网站怎么创业呢白手起家
  • 企业网站建设哪家公司好wordpress显示注册人数
  • UNet改进(45):融合Group Convolution与Hierarchical Feature Fusion的图像分割模型
  • 中国机械加工网站官网洛夕网站建设
  • 企业网站 html模板室内设计平面图纸
  • 网页制作与网站建设实战大全pdfseo优化关键词排名
  • 中文域名转码网站桐乡建设规划局网站
  • 建立网站要准备多少钱怎样在微信上制作自己的链接
  • cpanel wordpress是什么深圳网站关键字优化
  • 同一个空间可以做两个网站么泉州关键词优化排名
  • 网站淘宝客 难做wordpress模板 论坛
  • 做素食香料哪个网站买网站建设的目的和作用
  • 陕西省建设部官方网站筑巢网站后台管理系统
  • 网站建设 电话creo二次开发