1.接口
在抽象层次上是一个协议,对象遵守这个协议就能进行交流。
在语义上,它是站在高层次上去抽象业务共有部分,抽象出能力。
在语法上,它是定义了一些没有没有方法体的方法签名,以及对象。
2.在业务设计上的作用,多态性,我们可以降低系统耦合程度,使我们的系统的维护更加便利,
增添新的功能模块可以做到不改变现有代码的情况下,去动态新增我们想要的模块。
3.业务设计中,利用接口我们通常可以可以抽象出业务逻辑功能,来达到一个接合处,任何实现该接口
的类都可以进行交流,能够和我们的接口交流。
4.接口继承接口
通常我们定义接口时,有一个准则就是尽量不要为了方便,将所有的方法都放在一个接口里面,最小接口原则,
这样不但在业务意义上能够满足,而且也避免了实现接口的一些类去重写一些方法,这些额外方法是没有业务
意义的,我们一般不会去实现它。
所以,如果我们利用了接口继承的话,这样在接口的业务意义上是能够满足的,同时,也可以利用单独的接口,
就像将一个积木最小化之后,我们可以组合出更多的选择。
5.空接口
这种接口通常只是为了标识一个接口拥有某种能力,该接口不带任何方法。eg:可序列化接口
6.抽象类实现接口
通常在我们定义出一个接口之后,仍然会有多个不同类型的类来实现它,而且同时在这些不同的实现类中,又有
共同的逻辑,这个时候我们就需要考虑到再次进行抽象,这个时候可以用抽象类来实现接口,然后其他的类来继承
该抽象类,拥有该抽象类的公共逻辑,然后再子类里面添加自己的个性逻辑,这样设计出来的一个体系,充分考虑到了
易维护性,可拓展性。
7.抽象类和接口的优劣势比较
抽象类 :在语义上,它主要是定义了一个或一个以上的抽象方法,以及一些非抽象方法,这个抽象方法没有方法体,
不能实例化,只能由子类继承,重写其抽象方法,然后再实例化。
接口:第一点已经说明。
我们通常使用到抽象类,主要是使用到了抽象类的非抽象方法提取出公有逻辑,然后将需要子类重写的方法,让子类
不得不去重写,这样在抽象类中定义出业务流程,并且将其中几个特殊个性逻辑交给子类实现,这样能够抽出公有逻辑
,特性逻辑交给子类。
8.界面例子:
IUIObject 提供界面加载,保存,销毁等
CoreUI 提供简单 菜单项,功能栏
ListUI继承Coreui 增加 新增 删除 修改 查看按钮等,刷新页面等新功能
EditUI继承CoreUI 增加 下一个 上一个 功能
业务提供去继承Listui和Editui。
9.关于Collection接口体系
在抽象层次上是一个协议,对象遵守这个协议就能进行交流。
在语义上,它是站在高层次上去抽象业务共有部分,抽象出能力。
在语法上,它是定义了一些没有没有方法体的方法签名,以及对象。
2.在业务设计上的作用,多态性,我们可以降低系统耦合程度,使我们的系统的维护更加便利,
增添新的功能模块可以做到不改变现有代码的情况下,去动态新增我们想要的模块。
3.业务设计中,利用接口我们通常可以可以抽象出业务逻辑功能,来达到一个接合处,任何实现该接口
的类都可以进行交流,能够和我们的接口交流。
4.接口继承接口
通常我们定义接口时,有一个准则就是尽量不要为了方便,将所有的方法都放在一个接口里面,最小接口原则,
这样不但在业务意义上能够满足,而且也避免了实现接口的一些类去重写一些方法,这些额外方法是没有业务
意义的,我们一般不会去实现它。
所以,如果我们利用了接口继承的话,这样在接口的业务意义上是能够满足的,同时,也可以利用单独的接口,
就像将一个积木最小化之后,我们可以组合出更多的选择。
5.空接口
这种接口通常只是为了标识一个接口拥有某种能力,该接口不带任何方法。eg:可序列化接口
6.抽象类实现接口
通常在我们定义出一个接口之后,仍然会有多个不同类型的类来实现它,而且同时在这些不同的实现类中,又有
共同的逻辑,这个时候我们就需要考虑到再次进行抽象,这个时候可以用抽象类来实现接口,然后其他的类来继承
该抽象类,拥有该抽象类的公共逻辑,然后再子类里面添加自己的个性逻辑,这样设计出来的一个体系,充分考虑到了
易维护性,可拓展性。
7.抽象类和接口的优劣势比较
抽象类 :在语义上,它主要是定义了一个或一个以上的抽象方法,以及一些非抽象方法,这个抽象方法没有方法体,
不能实例化,只能由子类继承,重写其抽象方法,然后再实例化。
接口:第一点已经说明。
我们通常使用到抽象类,主要是使用到了抽象类的非抽象方法提取出公有逻辑,然后将需要子类重写的方法,让子类
不得不去重写,这样在抽象类中定义出业务流程,并且将其中几个特殊个性逻辑交给子类实现,这样能够抽出公有逻辑
,特性逻辑交给子类。
8.界面例子:
IUIObject 提供界面加载,保存,销毁等
CoreUI 提供简单 菜单项,功能栏
ListUI继承Coreui 增加 新增 删除 修改 查看按钮等,刷新页面等新功能
EditUI继承CoreUI 增加 下一个 上一个 功能
业务提供去继承Listui和Editui。
9.关于Collection接口体系