设计模式学习笔记——01 6大原则

1 单一职责

定义

应该有且仅有一个原因引起类的变更。

优点

1 类的复杂性降低,实现什么职责都有清晰明确的定义;
2 可读性提高;
3 可维护性提高;
3 变更引起的风险降低;
注意 单一职责原则提出了一个编写程序的标准,用 “职责” 或 “变化原因” 来衡量接口或类设计得是否优良,但是 “职责” 和 “变化原因” 都是不可度量的,因项目而异,因环境而异。

对于接口,在设计时一定要做到单一,实现类要多方面考虑

2 里氏替换原则

定义

只要父类能出现的地方子类就可以出现,而且替换成子类也不会产生任何错误或异常。
注意
覆写或实现父类的方法时输出结果可以被缩小
父类的一个方法的返回值是一个类型T,子类的相同方法(重载或覆写)的返回值为S,那么里氏替换原则就要求S必须小于等于T

如果是覆写:父类和子类的同名方法的输入参数是相同的,两个方法的范围值S小于等于T。
如果是重载:则要求方法的输入参数和数量不相同,在里氏替换原则的要求下,就是子类的输入参数要宽于或等于父类的输入参数,也就是说子类的该方法是不会被调用的。

3 依赖倒置原则

定义

依赖倒置即遵循以下规则:
1 模块间的依赖通过抽象发生,生成类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;
2 接口或抽象类不依赖于实现类
3 实现类依赖接口或抽象类

依赖的三种方法

1 构造函数传递依赖对象
2 Setter方法传递依赖对象
3 接口生命依赖对象
注意:如果基类是一个抽象类,而且这个方法已经实现了,子类尽量不要覆写。类间依赖的是抽象,覆写了抽象方法,对依赖稳定性会产生一定影响。

4 接口隔离原则

定义

把一个臃肿的接口变更为多个独立的接口所依赖的原则就是接口隔离原则。

注意:
1 接口要尽量小,但根据接口隔离原则拆分接口时,首先必须满足单一职责原则。
2 接口要高内聚
什么是高内聚?
高内聚就是提高接口、类、模块的处理能力,减少对外的交互。
3 系统之间或模块之间的定制服务需接口隔离,防止接口误调。

5 迪米特法则

定义

也称知道最少原则,一个类应该对自己耦合或调用的类知道的最少,不关心其内部实现,只关注调用的方法。
注意
1 只和朋友类(出现在成员变量或方法的输入输出参数中的类)交流
2 设计时需衡量是否可以再减少public方法和属性。
3 如果一个方法放在本类中,既不增加类间关系,也对类本身不产生负面影响,那就放置在本类中。
4 谨慎使用Serializable

6 开闭原则

定义

一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
即一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。
应用注意事项:
1 抽象约束 不允许出现接口或抽象类中不存在的public方法;
2 元数据(用来描述环境和数据的数据,即配置参数)控制模块行为
3 制定项目章程
4 封装变化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容介绍 项目结构: Controller层:使用Spring MVC来处理用户请求,负责将请求分发到相应的业务逻辑层,并将数据传递给视图层进行展示。Controller层通常包含控制器类,这些类通过注解如@Controller、@RequestMapping等标记,负责处理HTTP请求并返回响应。 Service层:Spring的核心部分,用于处理业务逻辑。Service层通过接口和实现类的方式,将业务逻辑与具体的实现细节分离。常见的注解有@Service和@Transactional,后者用于管理事务。 DAO层:使用MyBatis来实现数据持久化,DAO层与数据库直接交互,执行CRUD操作。MyBatis通过XML映射文件或注解的方式,将SQL语句与Java对象绑定,实现高效的数据访问。 Spring整合: Spring核心配置:包括Spring的IOC容器配置,管理Service和DAO层的Bean。配置文件通常包括applicationContext.xml或采用Java配置类。 事务管理:通过Spring的声明式事务管理,简化了事务的处理,确保数据一致性和完整性。 Spring MVC整合: 视图解析器:配置Spring MVC的视图解析器,将逻辑视图名解析为具体的JSP或其他类型的视图。 拦截器:通过配置Spring MVC的拦截器,处理请求的预处理和后处理,常用于权限验证、日志记录等功能。 MyBatis整合: 数据源配置:配置数据库连接池(如Druid或C3P0),确保应用可以高效地访问数据库。 SQL映射文件:使用MyBatis的XML文件或注解配置,将SQL语句与Java对象映射,支持复杂的查询、插入、更新和删除操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值