[转]Contracts 契约之面向接口编程

契约定义

什么是契约?契约就是所谓的面向接口编程。我们拿之前的例子说如果不使用接口会有什么问题。

就说上面的,看似没有什么问题,那如果随着我们日后需求的变更,想更换数据库作为记录日志的方式呢?那就得去改User类,没有解偶。

所以才有了面向接口编程,也就是 Laravel 中的契约。代码修改如下。

Laravel 中的契约

比如Cache,定义的契约规范在Illuminate\Contracts\Cache\Repository文件中。

我们可以写多种缓存方式如file,redis,memcached实现这个契约,编写契约中的set,get,remove之类的方法

在使用上,更上面的例子一样,构造函数或者方法只需要传入对应的契约接口,使用的时候可以随意更换file,redis,memcached

« »

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *