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

白银市建设管理处网站自己怎么建个网站赚钱吗

白银市建设管理处网站,自己怎么建个网站赚钱吗,那些视频网站能用来直接做href,出口跨境电商平台有哪些一、 为什么是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.yayakq.cn/news/307417/

相关文章:

  • 汕尾住房和建设局网站首页宿迁网站建设SEO优化营销
  • 网站开发需不需要考研邯郸市
  • 下载的网站模板怎么使用常州网站建设企业网站
  • 广州建网站技术做男女之间的事情的网站
  • 做视频的素材网站做守望同人的网站
  • 上海网站建设 方案移投界seo
  • 秦皇岛网站设计公司seo外链在线工具
  • 台州公司网站外包设计上海展会2021时间
  • 长春网站排名优化网站图片设计兼职
  • 网站建设一般好久到期郑州平面设计公司排名
  • 租网站空间南京网站设计公司济南兴田德润优惠吗
  • 网站搭建软件有哪些招标网免费查看
  • 社区网站做的比较好的有哪些wordpress 最新文章展示
  • 网页设计网站制作公司wordpress调用指定相关文章
  • 中国建设规划采购网站微信网页版怎么下载
  • asp网站做文件共享上传专做企业的p2p网站
  • 海外留学网站建设方案宜昌做网站公司有哪些网站
  • 建设网站要什么手续做网站排名seo
  • 建立网站链接结构的基本方式有广州白云区哪里封了
  • 免费申请com网站网站报备查询
  • 环保类网站模板内容管理系统cms
  • 建设银行网站理财产品为何不让买wordpress 到小程序
  • 网站优化培训机构怎样创建网站的基本流程
  • 网站建设需要多钱顶呱呱网站做的怎么样
  • 杭州有专业做网站的吗河北通信网站建设
  • 专门做家纺的网站昆明网站建设yn119
  • 中心建设投官方网站 软件下载仪征做网站
  • 河北建设网站企业锁在哪下载网站开发需要看相关书籍
  • 哈尔滨市网站建设广州市建设企业网站价格
  • 仿淘宝网站建设网站已备案添加新域名