9.MVC模式 -- 改造源代码

2021年11月23日 阅读数:2
这篇文章主要向大家介绍9.MVC模式 -- 改造源代码,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

1、MVC设计模式

    软件能够认为有 Model View Controller 来组成 MVC设计模式 要求这三部分 应该尽可能独立 互不干扰 使程序结构清晰  便于开发和维护java

2、JAVAEE经典三层架构

    将整个JAVAEE的开发过程分为 Web Service Dao 三层mysql

    案例:改造EasyMall 为 三层架构web

    分层的优点:sql

        ~1.分层目的在于 代码具备更加优良的结构 便于开发和调试数据库

        ~2.便于在层与层之间实现代码的复用 减小代码冗余编程

        ~3.在更改模块时能够不影响其余模块的使用 实现模块的复用设计模式

                如 须要将底层的数据库 从mysql 切换到oracle 此时 只须要去修改Dao层 web层和service层不须要修改。tomcat

                再例如 ,须要将web层 切换为 用Android 或 IOS 移动端实现 ,此时 只须要 替换web 层 Service 和 Dao层不须要修改。架构

 

        为了实现第三个优势,三层架构要求,层与层之间尽可能的独立,不要胡乱传递层特有的对象,例如不要将web层特有的对象传递给其余层,dao层 特有的对象返回给其余层,由于,一旦这样作,这些某一层特有的对象就入侵到了其余层,一旦须要替换这一层时,不可避免的要跟着修改其余层中使用了这一层特有对象的地方的代码。这种因为乱传递对象而形成 层与层之间关系变得过于紧密的状况,称之为层与层之间发生了耦合。oracle

        这种层与层之间过于紧密的关系是有害的,应该尽可能的避免或消除,解决这些耦合的过程就称之为 解耦。最终但愿实现 高内聚 低耦合 的状态。

    解耦的实现:

        不要胡乱传递层特有的对象人为的形成耦合。

        可是再当心,层与层之间迟早要发生关系的,这些耦合是没法避免的,此时 须要将耦合管理起来 - 管理耦合有不少种方案 - 咱们介绍 - 接口+配置文件+工厂 实现解耦。

        接口:

            使层能够面向接口编程 而不须要关注下面层具体的实现

            在切换底层时 不须要修改上层代码 由于接口没有变更

            为层的实现提供了统一的标准  方便 实现不一样实现类

 

        工厂+配置文件:

            基于配置来实现产生接口的实现类

            由工厂来根据配置来生产接口的具体实现类对象,在底层实现类变化时,能够不须要修改代码 只须要改配置便可

 

            单例 泛型 反射

单例模式:

解决的问题:保证一个类在一个程序中只能有惟一的一个实例

2种状况:

    1. 须要惟一的一个对象进行统一的管理,若是对象多了,就会出问题

    2. 相对于频繁建立对象,使用惟一的对象能够提升效率

如何实现单例模式?

    1. 私有的构造器

    2. 私有的静态的自身实例,做为惟一的实例

    3. 公有的静态的返回当前类的惟一实例的方法

代码重构:

    jsp中的java代码用标签技术替代

    配置虚拟主机,实现www.easymall.com访问

        在[tomcat]/conf/server.xml配置虚拟主机<Host name="www.bingou.com" />

        修改Hosts文件增长 127.0.0.1 bingou.com

        在[tomcat]/conf/www.bingou.com/ROOT.xml 中编写<Context docBase="工程的WebRoot目录"/>直接让tomcat中的www.bingou.com虚拟主机管理工程目录下的WebRoot,好处是不用发布,直接修改工程中的文件当即能够起做用。

        **此种方式下没有了发布过程,myeclipse就不会自动帮咱们加入jstl开发包了,须要本身导入。

    用javabean保存信息

    整理代码结构,实现软件分层

注册用户:

            RegistServlet

                解决请求响应乱码

                验证验证码

                获取用户提交的数据

                校验数据

                将数据封装到bean中,调用Service的方法注册用户

                注册成功后回到主页

            UserService

                注册用户的方法:

                    检查用户名是否存在

                    注册用户到数据库

            UserDao

                根据用户名查找用户

                加入用户数据到数据库中

登陆用户:

            LoginServlet

                处理乱码

                获取用户名密码

                记住用户名的处理

                调用Service根据用户名密码查找用户

                找不到就提示用户名密码不正确

                找到就登陆用户回到主页

            UserService

                登陆用户的方法

                调用到根据用户名密码查找用户

            UserDao

                根据用户名密码查找用户的方法

            AJAX校验用户名:

               解决乱码

               获取用户名

               检查用户名是否已经存在             

 

 

代码修改

连接:https://pan.baidu.com/s/1stneiwMhgVxw03VV28PDZg 密码:py2j