学习设计模式(1)——面向接口编程

来源:互联网 发布:极限编程实践 编辑:程序博客网 时间:2024/05/16 03:45

今天,开始看《Head First 设计模式》,突然有一种醍醐灌顶的感觉。

之前,困扰我许久的问题,突然得到了解答,就像是秘籍一样(我还是太菜了,哈哈)。

第一章,介绍——面向接口编程。

这是一种,比面向实现编程,更高阶的设计模式。我之前写代码,全都是面向实现编程,每个类代表一种事物,各种事物最终由一个总管类去处理业务逻辑,形成一个软件。表面上,这是一种面向对象的编程方法,而且很彻底的面向对象。但实际上,由于为每个事物,或多或少不是完全独立的,很多类似的功能,也在一定程度上,具有复用的空间,因此,在设计上,就有了提升的可能性,这就是所谓的面向接口编程。

针对C++语言的特性来说,C++是没有接口的概念的,java才有。但是C++有虚函数,纯虚函数,继承以及多态的内容,因此,就可以利用虚函数的特性,制造出父类,然后在多个子类中,实现不同的内容。再利用 父类指针,根据不同的需求指向不同的子类实例,就完成了所谓面向接口编程。

也许,在C++中,虚函数就可以看成是接口,子类继承父类之后,各自不同的函数实现,就代表不同的接口实现。父类指针,可以随意的指向不同的子类实例,从而形成根据需求进行接口调用。

这就是一种更为先进的设计模式,比每次都写一个类实现某种事物更为先进,至少在代码复用,和代码架构上,都更好。

我个人理解,面向对象是对自然的模拟,但是生产力有限,就好比人类靠双手是永远不可能超越现代化工业生产的生产力的。而现代化工业生产,往往意味着标准化和接口化,这就是进步的方向。




==============

0 0