尽量使用接口, 而不是具体的实现.
尽量使用对象的组合,而不采用类的继承.
抽象类和接口相比有一些优点.采用抽象类时,如果在基类中添加方法不会影响客户端和执行.子类必须按照一定的方式重写抽象类中所有的抽象函数.如果客户端不使用新方法,它虽然继承了这个方法,但却没有使用或修改它.而接口中每个方法都必须实现.
抽象类的另一个优点是可以添加一些默认的行为,还可以创建一些固定的方法让子类来执行.当然,并不是所有的子类都需要这些默认的行为和方法.如果对这些默认的行为或方法进行了修改,子类在实现过程中可能产生意想不到的结果.因此可以看出,使用抽象类和接口来管理这些依赖关系比使用具体类和具体方法要灵活一些.
在选择使用抽象类还是接口时,要依据具体的项目.如果使用过程中要加入新的方法采用抽象类更好一些.如果基类是固定的,不允许对其作任何修改,则选择接口.选择使用抽象类还是接口之前,要仔细考虑项目以后的发展.如果弄清楚使用项目过程中的各种因素及项目的发展情况,能够选择更适合的设计模式,从而更好地完成设计任务.
分享到:
相关推荐
C#学习笔记......
C++学习笔记......................................
杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代笔记.pdf杨超线代...
HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.等,我是我在上大学时学习做的笔记,拿出来和大家共享。。
Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...
Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf ...
java学习笔记java学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记.zipjava学习笔记...
学习mysql基本命令笔记...
瑞吉外卖学习笔记...
vi笔记.txtvi笔记.txtvi笔记.txtvi笔记.txtvi笔记.txt
C语言程序设计重点笔记.doc C语言程序设计重点笔记.doc C语言程序设计重点笔记.doc C语言程序设计重点笔记.doc C语言程序设计重点笔记.doc C语言程序设计重点笔记.doc C语言程序设计重点笔记.doc C语言程序设计重点...
Redis学习笔记.pdf 含目录 #资源达人分享计划#
计算机二级C语言笔记.zip计算机二级C语言笔记.zip计算机二级C语言笔记.zip 计算机二级C语言笔记.zip计算机二级C语言笔记.zip计算机二级C语言笔记.zip 计算机二级C语言笔记.zip计算机二级C语言笔记.zip计算机二级...
C++笔记.rarC++笔记.rarC++笔记.rarC++笔记.rarC++笔记.rarC++笔记.rarC++笔记.rarC++笔记.rar
R语言定义学习笔记.doc R语言定义学习笔记.doc R语言定义学习笔记.doc R语言定义学习笔记.doc R语言定义学习笔记.doc R语言定义学习笔记.doc R语言定义学习笔记.doc R语言定义学习笔记.doc R语言定义学习笔记.doc R...
计算机书籍读书笔记..docx
传染病学笔记..doc
计算机网络基础知识笔记..docx
大学计算机基础 重点笔记..doc
中医基础理论总结笔记..pdf