面向对象的设计法则2[Program To An Interface, Not An Implementatio]
来源:互联网 发布:数据库设计要做什么图 编辑:程序博客网 时间:2024/06/05 08:17
法则2:针对接口编程,而非(接口的)实现
[ Program To An Interface, Not An Implementatio]
接口
1.接口是一个对象在对其它的对象进行调用时所知道的方法集合。
2.一个对象可以有多个接口(实际上,接口是对象所有方法的一个子集)
3.类型是对象的一个特定的接口。
4.不同的对象可以具有相同的类型,而且一个对象可以具有多个不同的类型。
5.一个对象仅能通过其接口才会被其它对象所了解。
6.某种意义上,接口是以一种非常局限的方式,将"是一种…"表达为"一种支持该接口的…"。
7.接口是实现插件化(pluggability)的关键实现继承和接口继承
1.实现继承(类继承):一个对象的实现是根据另一个对象的实现来定义的。
2.接口继承(子类型化):描述了一个对象可在什么时候被用来替代另一个对象。
3.C++的继承机制既指类继承,又指接口继承。
4.C++通过继承纯虚类来实现接口继承。
5.Java对接口继承具有单独的语言构造方式-Java接口。
6.Java接口构造方式更加易于表达和实现那些专注于对象接口的设计。接口的好处
1.优点:
a.Client不必知道其使用对象的具体所属类。
b.一个对象可以很容易地被(实现了相同接口的)的另一个对象所替换。
c.对象间的连接不必硬绑定(hardwire)到一个具体类的对象上,因此增加了灵活性。
e.松散藕合(loosens coupling)。
f.增加了重用的可能性。
e.提高了(对象)组合的机率,因为被包含对象可以是任何实现了一个指定接口的类。
2.缺点:
a.设计的复杂性略有增加
(译者注:接口表示"…像…"(LikeA)的关系,继承表示"…是…"(IsA)的关系,组合表示"…有…"(HasA)的关系。)
- 面向对象的设计法则2[Program To An Interface, Not An Implementatio]
- Bob Tarr:一些面向对象的设计法则(3):Program To An Interface, Not An Implementation
- "Programming to an Interface, not an Implementation"
- An interface is not a pointer to an object. It's an interface.
- 设计模式之Programming to an Interface, not anImplementation 程序指向接口,而不是实现
- An object has an interface (对象的接口)
- 一些面向对象的设计法则 2
- 一些面向对象的设计法则(2)
- 一些面向对象的设计法则(2)
- 一些面向对象的设计法则(2)
- 面向对象的设计法则
- Could not load file or assembly ... An attempt was made to load a program with an incorrect format.
- [转]How to load an AutoLISP program
- 一些面向对象的设计法则
- 面向对象设计/编程的四大法则
- 一些面向对象的设计法则
- 一些面向对象的设计法则
- 一些面向对象的设计法则(1)
- Ext.toolbar.Toolbar的学习,是Ext Js 4的类,Ext Js3的用法有些不同
- 面向对象的设计法则1[Favor Composition Over Inheritance]
- <%$ %> <%# %> <%= %>的不同
- js 省市级练、js 省市 完整
- Apache服务器无法访问问题
- 面向对象的设计法则2[Program To An Interface, Not An Implementatio]
- 【带权中位数】科研先行(research)
- 编写完整的Content provider示例
- MSChart的使用与部署
- 2011-7-25 19:58:43
- 面向对象的设计法则3[Software Entities Should Be Open For Extension, Yet Closed For Modification ]
- 关于EXCEL隐私问题警告
- C#获取网页源代码的5种方法
- 自己写的一个解析运算式并得到结果的方法(最后是以Double型表示,中间是以BigDecimal计算中间结果的,临时起意写的,没有注释)