系统架构
应用系统的整体架构,有两种:三层架构和MVC。目的都是降低系统的耦合度。
系统的复杂度:就是系统的耦合度
1.什么是三层架构
视图层View,服务层Service,持久层DAO。该架构主要用于单体应用。
- View层:用于接收用户提交的请求
- Service层:系统的业务逻辑实现部分。约定优于配置。
- DAO层:直接操作数据库的代码
该架构中,采用面向抽象编程,即上层对下层的调用,是通过接口实现的,而下层对上层提供真正服务提供者,是下层接口的实现类。接口是相同的,具体的实现类不同。
2.高内聚的原则:
一个类只做一种事
一个方法只做一件事
写且只写一次
3.MVC架构
MVC架构本身对应的是三层架构中的视图层,其中M层和三层模型的服务层对接,由服务层完成实际的业务逻辑和数据库操作
- M:Model模型,分为数据模型Entity和业务模型Service
承载数据,并对用户提交请求进行计算的模块。数据模型bean:专门承载用户的数据,如Student,User类;业务模型bean:指Service或Dao对象,专门用于处理用户提交的请求。 - V:View视图,为用户提供使用界面,与用户直接交互。
- C:Controller:控制器,处理用户请求,用于将用户请求转发给相应的Model进行处理,并根据Model的计算结果向用户提供响应。
比如:M:JavaBean、Service、Dao,V:Jsp,C:Servlet
4.设计原则
- 开:开闭原则,对扩展开放,对修改关闭。即模块原有代码不变的情况下,对模块功能进行扩展
- 口:接口隔离原则,一个类对另一个类的依赖应该是最小的接口。使用多个专用接口比使用一个总接口要好,用不同的服务来提供组合服务。富接口类会导致客户程序之间不必要的耦合,当一个客户要求更改接口类的某个接口时,其他客户也要更新,所以客户程序应该仅仅依赖他们实际需要的方法
- 合:组合/聚合原则,在一个新的对象里面,尽量用已有的对象作为新对象的一部分,新对象通过委派已有对象来复用功能,即尽量用组合,尽量不要继承。
- 里:里式替换原则,所有引用基类的地方,必须透明的使用其子类的对象,只要父类可以使用的地方,子类也应该可以使用,而且替换为子类不产生异常和错误。
- 最:最少知识原则(迪米特法则),一个对象对其他对象应该尽可能少的了解,如果两个类不是必须直接通信,就应该用第三类进行转发。
- 单:单一职责原则,一个类应该只完成一种事
- 依:依赖倒置原则,模块间的依赖通过抽象类或接口发生,实现类之间不直接依赖,接口和抽象类不依赖实现类,实现类依赖接口或抽象类