面向对象的接口使用前人代码的方式

用别人框架写功能过程中,慢慢体会到面向对象的好处。
本文角度比较小,仅从使用前人代码的角度分析。

继承

面向对象三大特性之一继承,挺好理解的(当然也可能是我理解不全),子类继承父类,子类就拥有了父类的方法,属性。站在开发者角度,我自建控制器继承框架提供的基类控制器,自建模型继承框架提供的基类模型,然后就可以使用基类beforeSave()afterSave()validate(),及各种查询方法,非常方便地复用了前人的代码。在这种思想渲染下,我也开始学会,自建一层基类,写一些公共方法,供子类调用了,修改起来方便很多。

总结:继承,调用父类的方法,就能够使用前人的代码了,这就有很大意义了~

接口

然而接口呢?一个类实现一个接口,必须要实现接口的那几个方法,不实现就报错,想用这几个方法的话,要自己去写具体代码,站在写代码者角度,我实现接口干嘛,有什么用?如果我想通过这个类实现某些功能,我就直接在这个类上写几个方法啊,为什么要多出一步,实现接口后,再写那几个方法

最初我的理解是这样:一个类实现了某个接口,别人一看,就知道这个类一定有什么方法,能实现什么功能了。这也没错。

后来,我在用yii2实现token过程中,链接在此,猛然意识到,接口的方法很可能被别的类调用了

为什么要有 实现接口一定要实现其所有抽象方法,否则报错这样的语法规则?因为这些方法极可能在某地方被调用了的,不实现被调用时一样报错~

我写一个类,去实现一个接口,实现接口里的抽象方法,这些方法,会被框架创造者写下的某个类里调用,最终结果是,通过框架创造者的类实现了某个功能,仔细一想,这也是”使用”前人代码的一种方式啊,只不过不像继承后,调用父类方法那么明显,这种方式是被调用

总结:实现接口,具体实现接口的抽象方法,然后等着被调用,成为框架创作者写的流程的一部分,实现某个功能。被调用了,也相当于使用了调用处的代码。

相关链接

yii2实现token认证(源码分析)

你可能感兴趣的:(编程思想)