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

佛山网站架设具有价值的常州做网站

佛山网站架设,具有价值的常州做网站,智联企业登录入口,金凤区建设交通局网站一、 为什么是Spring? 在正式进入Spring内容前我们先看看我们以往经典的程序设计。 当我们去登录时,会调用后端的Controller,Controller接收到用户的请求后会调用业务层的Service进行登录的业务处理,Service业务处理过程中会调用Dao层向DB获取数进行判断。 接下来我们用代…一、 为什么是Spring? 在正式进入Spring内容前我们先看看我们以往经典的程序设计。 当我们去登录时,会调用后端的Controller,Controller接收到用户的请求后会调用业务层的Service进行登录的业务处理,Service业务处理过程中会调用Dao层向DB获取数进行判断。 接下来我们用代码来模拟实现这个逻辑 Controller中,我们需要有一个方法来接收用户发起的请求 public class UserController {private UserService userService = new UserServiceImpl();// 登录public void login() {String username = "admin";String password = "123456";boolean success = userService.login(username, password);System.out.println(success ? "登录成功" : "登录失败");} } Service中要进行用户校验的业务逻辑处理,定义Service接口以及实现类 public interface UserService {boolean login(String username, String password); } public class UserServiceImpl implements UserService {private UserDao userDao = new UserDaoImplForMySQL();@Overridepublic boolean login(String username, String password) {User user = userDao.findUserByUsernameAndPassword(username, password);return user != null;} } Dao中我们要使用用户传过来的用户名和密码去数据库查询是否存在,定义Dao接口及实现类 public interface UserDao {User findUserByUsernameAndPassword(String username, String password); } public class UserDaoImplMySQL implements UserDao {@Overridepublic User findUserByUsernameAndPassword(String username, String password) {// 省略具体的实现过程...return null;} } 看上去这个模拟的实现没有什么问题,但是有一天项目组说我们现在数据从MySQL迁移到了Oracel,怎么办??你得考虑它用户数据未来还会不会迁移回来呢! 所以此时我们就会对于Dao的实现再加一个 // 使用Oracle数据库实现UserDao public class UserDaoImplForOracle implements UserDao {@Overridepublic User findUserByUsernameAndPassword(String username, String password) {// 省略具体实现过程...return null;} } 不同的数据库实现有不同的处理方式,感觉逻辑正常,但是这时我们还得要反回去修改Service的实现,让它引用的是新的Dao实现。 public class UserServiceImpl implements UserService {// private UserDao userDao = new UserDaoImpl();private UserDao userDao = new UserDaoImplForOracle(); @Overridepublic boolean login(String username, String password) {User user = userDao.findUserByUsernameAndPassword(username, password);return user != null;} } 以上的这个设计好吗?实际是不好的,因为每次底层的变化都会要求上层进行代码的变更,其实这里违背软件开发中的开闭原则! 什么是开闭原则? 在软件开发过程中应对扩展开放,对修改关闭。也就是说,如果进行功能扩展时,添加额外的类是没有问题的,但是如果因为功能扩展而修改之前运行正常的程序,这时忌讳,是不被允许的。 从上图可以看出,上层是依赖下层的。UserController依赖UserServiceImpl,则UserServiceImpl依赖UserDaoImplForMySQL,这样就会导致一旦下层的改动,上层必然受到影响也需要进行改动,这也同时违背了另一个开发原则:依赖倒置原则 什么是依赖倒置原则? 依赖倒置原则,简称DIP,主要倡导的是面向抽象编程、面向接口编程,不要面向具体编程,让上层不再依赖下层,这样的话下面改动了,上面代码也不会受到牵连。这可以大大地降低程序的耦合度,耦合度低了扩展性就强了,同时代码的复用性也会增强。 在前面
http://www.tj-hxxt.cn/news/233592.html

相关文章:

  • php 网站建设 教学青岛市建设局网站
  • 微网站建设及微信推广方案ppt模板电商公司有哪些?
  • 湛江做网站制作唯品会购物商城
  • 空壳主体接入网站公司网站开发需要做哪些事
  • 深圳网站建设q双赢世讯网页游戏网站网址
  • 做家政有专门的网站吗专业加速器产业园
  • 网站建设设计原则阳江市网站备案幕布
  • 网站建设与管理课程项目时尚字体设计网站
  • WordPress网站修改品牌成功案例100个
  • 官方网站的英文工商网上核名系统
  • 网站群维护方案广州安全教育平台注册
  • 画廊网站模板官网应用商店下载
  • vs网站开发表格大小设置dw网页怎么使用模板
  • 网站动态页面河南电商网站设计
  • 佛山网站建设哪家评价高建设银行海外分行招聘网站
  • 有什么好的手机推荐网站爱战网关键词查询网站
  • 青海建设厅网站学编程要多少钱
  • 建一个交易网站需要多少钱淘宝代运营公司十大排名
  • 匿名网站建设营销型网站策划 ppt
  • 网站建设 菜鸟教程公司做网站 手机 电脑
  • 佛山网络公司哪家便宜淄博网站建设优化运营熊掌号
  • 浙江做网站公司wordpress插件dedecms
  • 网站建设业务前景做网页要花多少钱
  • 深圳微商城网站设计电话常熟seo关键词优化公司
  • 做网站网页的公司婚礼礼网站如何做的
  • 1 建设网站目的是什么意思室内设计公司图片
  • 51个人网站百度公司介绍
  • 上海网站建设流进销存软件终身免费版
  • 网站的开发环境是什么wordpress免费主题企业
  • 青岛网站空间北京的网站设计公司