编程过程中抽象类和接口的抉择

作为一位程序员在编码的过程中,终会遇到这种情况:这个功能我到底是用接口呢?还是用抽象类呢?

最近在项目中负责支付功能,由于项目是在原有的基础上,由小程序扩充终端到了App,小程序之前又对接了微信的 jsapi ,所以现在的对接支付平台的情况变为,银联支付宝App 支付、易付宝 App支付、微信jspai支付、微信App支付。(为啥没有对接小程序支付,却对接了 jsapi 支付,那我就不晓得了)。对接一个平台的支付就需要实现下单、异步回调处理、订单查询、订单退款、订单退款查询,于是我就在抽象类和接口之间徘徊,不过短暂的思考过后我还是选择了接口。

那什么时候使用接口?什么时候使用抽象类?

使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。
抽象类适合用来定义某个领域的固有属性,也就是本质,接口适合用来定义某个领域的扩展功能。

什么时候使用抽象类?

  • 当2个或多个类中有重复部分的时候,我们可以抽象出来一个基类,如果希望这个基类不能被实例化,就可以把这个基类设计成抽象类。
  • 当需要为一些类提供公共的实现代码时,应优先考虑抽象类。 因为抽象类中的非抽象方法可以被子类继承下来,因为抽象类中的非抽象方法可以被子类继承下来,使实现功能的代码更简单。抽象类只能是单继承的,不能多继承。

什么时候使用接口?

  • 当注重代码的扩展性跟可维护性时,应当优先采用接口。
  • 接口与实现它的类之间可以不存在任何层次关系,接口可以实现毫不相关类的相同行为,比抽象类的使用更加方便灵活;
  • 接口只关心对象之间的交互的方法,而不关心对象所对应的具体类。接口是程序之间的一个协议,比抽象类的使用更安全、清晰。一般使用接口的情况更多。
  • 作者: Sam
  • 发布时间: 2020-08-24 21:51:35
  • 最后更新: 2020-10-10 22:35:31
  • 文章链接: https://ydstudios.gitee.io/post/665bcc51.html
  • 版权声明: 本网所有文章除特别声明外, 禁止未经授权转载,违者依法追究相关法律责任!