浅谈面向对象中类、抽象类、接口划分

基本概念

面向对象编程(Object Oriented Programming,OOP)是一种编程架构,重塑了编程方式。
OOP三个主要目标:重用性、灵活性和扩展性。
OOP=对象+类+继承+多态+消息,其中核心概念是类和对象。编程

类、抽象类、接口划分

类是面向对象编程过程当中必需会用到的,可是抽象类与接口却不必定。不少时候或者不少开发人员对抽象类与接口的选取或理解上有些疑惑,由于接口中能作的东西抽象类基本都能完成,那为何还要去多写一个接口文件再写一个类去实现呢?虽然接口能够多重继承,但遇到的也能够拆分或组合,能少写一个文件的事却整的这么麻烦呢?还有在类中方法明明没有使用到对象的属性为何不使用静态方法呢?使用静态方法内外调用方便,为何还要写成非静态而后不得不去建立一个对象调用呢?架构

相似的问题会很是多,实际上都是为了定义后续开发维护的规范。我总结的是开发时所能看到的动做与功能所适应的对象范围,将决定你开发代码共用和规范的精华。ide

类主要是定义某个对象的具体动做与功能,是对象处理的最小单元。
类比较适合对象的独有动做与功能处理的抽取或实现,相同的动做与功能交给基类或其它类处理或实现。
类在实际开发过程当中,不多是独立完成一些功能或动做的,通常须要借助其它处理类来完成,在这过程当中须要类具有对象调用的特色,改善其它处理类的通用性。对象

抽象类

抽象类主要是定义某些对象集的基本动做与功能集,其中有部分动做与细节须要子类完成。
抽象类比较适合同类别的对象集抽取,把相同的处理方法或功能抽取出来,能实现的就实现,不能实现的给定义。
抽象类可理解为纵向串联某些对象集,偏集中完成总体功能,适用同类别的对象集。
好比商品处理,商品有不种类,但都有:库存、名字、规格、生产日期、生产地、价格等,和库存处理、规格处理等,抽象一个商品基类实现商品的基本动做与功能,提供商品子类须要完成的抽象方法:损耗处理、检验处理、销售处理等。全部子商品只须要完成抽象方法便可共享商品处理的基本动做与功能。继承

接口

接口主要是定义某些动做或功能的基本方法结构集,并不明确哪些对象。
接口比较适合有匹配的处理包,有点像黑匣子,你不须要知道内部处理了什么,只需实现对外提供接口方法,而后直接调用处理包就能够得到想要的结果。
接口可理解为横向穿插某些对象集,偏集中完成穿插部分的功能与细节,适用相同动做或功能的对象集。
好比支付处理,支付通常都须要对接三方支付接口,基本上全部的三方支付接口都会提供:建立支付订单、取消支付、支付回调、查询订单;在这里并不须要知道支付的是什么订单,全部的订单只须要实现支付接口方法:获取订单号、获取支付金额、获取支付商品简称、获取支付超时时间、更新支付状态;支付处理包只须要实现具体的:建立支付订单、取消支付、支付回调、查询订单。若是哪里须要支付,直接实现支付接口基本方法,而后调用支付处理包就能够快速完成支付功能。接口

相关文章
相关标签/搜索