热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从百草园到三味书屋(三)接口约定

InterfaceAsSchematic接口就是大纲接口在开发程序的“骨架”时非常有用。在设计组件时,使用接口进行设计和讨论都是对你的团队有益处的。比如定义一个BillingNot






Interface As Schematic 接口就是大纲

  1. 接口在开发程序的“骨架”时非常有用。



  2. 在设计组件时,使用接口进行设计和讨论都是对你的团队有益处的。



  3. 比如定义一个BillingNotifierInterface,然后讨论他有什么方法。在写任何实现代码前先用接口讨论好一套好的API!



  4. 记住,接口实际上不真正做任何事情。它只是简单的定义了类们必须实现的一系列方法。




A Contract Example 约定的范例

  1. 接口就是约定。



  2. 接口不包含任何代码实现,只是定义了一个对象应该实现的一系列方法。



  3. 如果一个对象实现了一个接口,那么我们就能确信这个接口所定义的一系列方法都能在这个对象上使用。因为有约定保证了特定方法的实现标准,通过多态也能使类型安全的语言变得更灵活。




Interfaces & Team Development 接口与团队开发

  1. 一旦建立了约定,就算约定还没实现,前端开发者也可以测试他的控制器了!



  2. 这样应用中的不同组件就可以按不同的速度开发,并且单元测试也可以做。而且这种处理方法还可以使组件内部的改动不会影响到其他不相关组件。



  3. 要记着无知是福。我们写的那些类们不用知道别的类如何实现的,只要知道它们能实现什么。



//根据定义好的约定,再来写控制器
class OrderController {
public function __construct(OrderRepositoryInterface $orders)
{
$this->orders = $orders;
}
public function getRecent()
{
$recent = $this->orders->getMostRecent(Auth::user());
return View::make('orders.recent', compact('recent'));
}
}
//前端开发者甚至可以为这接口写个“假”实现,然后这个应用的视图就可以用假数据填充了:
class DummyOrderRepository implements OrderRepositoryInterface {
    public function getMostRecent(User $user)
    {
        return array('Order 1', 'Order 2', 'Order 3');
    }
}
//一旦假实现写好了,就可以被绑定到IoC容器里,然后整个程序都可以调用他了:
App::bind('OrderRepositoryInterface', 'DummyOrderRepository');

原文链接:https://my.oschina.net/zgldh?tab=newest&am...





php laravel


推荐阅读
author-avatar
愿今夜不再孤单
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有