接口与类的选择

1.接口和类的优缺点

在面向对象编程中,接口和类是两种基本结构。它们各有优缺点,通常用于不同的场景。

接口的优缺点:

优点:

  1. 灵活性:接口定义了一种规范,你可以实现这个规范而不需要关心具体的实现细节。这种灵活性使得你在不同的实现之间切换非常方便。
  2. 依赖倒转原则:通过接口可以实现依赖注入,使得组件之间的依赖关系更加清晰,系统结构更稳定。
  3. 多实现:一个接口可以被多个不同的类实现,提供了多态性。
  4. 解耦合:接口的使用有助于解耦,使得代码模块之间依赖性降低,易于维护。
  5. 标准和规范:接口可以作为一组类的标准和规范,提供了一致的调用方式。

缺点:

  1. 抽象性过强:接口只定义了方法的签名,没有具体实现,这可能使得代码的可读性降低。
  2. 过度泛化:在某些情况下,可能会出现接口定义过于泛化,导致接口过于庞大,实现起来较为困难。
  3. 可能重复:实现多个接口可能会导致重复的代码。

类的优缺点:

优点:

  1. 具体实现:类直接提供了代码的具体实现,可以直接使用。
  2. 封装性:类可以封装数据的属性和行为,提高代码的隐蔽性。
  3. 继承:类可以继承其他类,实现代码的重用。
  4. 多态:类可以被多态使用,即可以在父类的地方使用子类。

缺点:

  1. 耦合性:直接使用类会增加组件之间的耦合。
  2. 可扩展性:添加新的方法或特性时可能需要修改类代码,这可能会影响到已有代码。
  3. 变更扩散:在类中进行修改可能会影响到依赖于它的其他代码,这会产生变更扩散的问题。

注意事项:

1.接口可以继承接口,但是不能继承类

2.类只能继承一个类,但是可以实现多个接口

3.面向接口编程:面向接口编程可以提高代码的可复用性和可扩展性。

4.依赖注入:接口非常适合依赖注入模式的使用。

5.单一职责:接口通常只定义一组特定功能的规范。这样可以使得每个接口(或类)专注实现单一的功能,这样可以避免职责混杂,使得代码更易于管理和理解。

2.接口解耦的案例

为什么持久层Mapper是一个接口,而不是一个类呢?

原因:

1.首先是依赖注入问题,当你在Mapper层写SQL语句,然后在ServiceImpl中注入mapper对象,

但是你并不知道注入的实习类是哪个,而写成接口形式,你不需要去考虑这个实现类问题

答案:

该实现类其实是Mybatis-plus的一个代理对象。。

2.而且接口,我也可以在其他地方注入mapper对象,就可以复用该方法。

3.Mapper接口就是指映射接口,用来指定SQL查询和映射结果到Java对象的规则。就因为有这个

规则,你在用Mapper接口时继承BashMapper<T>接口,它需要你指定一个实体类,把查到的数据

通过反射封装到你的实体类中

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值