码迷,mamicode.com
首页 > 其他好文 > 详细

理解契约式编程

时间:2014-06-21 16:46:12      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:class   blog   get   使用   数据      

重要概念

抽象类:

当类中有一个方法为抽象方法,该类即为抽象类。继承一个抽象类时,应该实现其所有的抽象方法。

<?php
abstract class car{
    protected $name;
    protected $speed;

    public function __construct($name, $speed) {
        $this->name = $name;
        $this->speed = $speed;
    }

    abstract function run();

    public function __get($k) {
    	if(in_array($k, array(‘name‘))) {
    		trigger_error("禁止访问私有成员:" . $k, E_USER_ERROR);
    		return;
    	}
    	return $this->$k;
    }
}
?>
    

 

接口:

接口定义了一系列必要的操作,实现接口的类必须实现接口的方法。

 

<?php
interface people
{
    public function say();
}

 

<?php
include ‘people.interface.php‘;

class worker implements people
{
    private $name;
    private $age;

    public function __construct($name, $age)
    {
        $this->name = $name;
        $this->age = $age;
    }

    public function say()
    {
        echo $this->name . ‘, age is ‘ . $age . ‘<br />‘;
    }

    public function __get($k)
    {
        if($k == ‘name‘) {
            trigger_error("禁止访问私有成员:" .$k, E_USER_ERROR);
            return;
        }
        return $this->$k;
    }
}
?>

 

契约式编程

 

使用抽象类和接口实现契约式编程,这样可以使结构更加清晰,扩展性高。适合团队开发,例如可以通过定义一个数据库操作模型模块,使所有需要操作数据库的模块派生类都必须实现模型中的方法,这样就实现了数据层与控制层的分离,编写控制层只需要有数据层的文档即可知道基本操作。

 

如何使用抽象类?

 

抽象类定义基本方法,而具体的功能实现交给具体的类,当需要更换操作时,只需要重写抽象类中的基本方法。

 

如何使用接口?

 

接口是用来约束一个类型,实现面向对象编程的多态性。定义一个类型,而这个类型会派生很多的类型,但是这些类型都需要有基类的这些操作。

 

 

 

理解契约式编程,布布扣,bubuko.com

理解契约式编程

标签:class   blog   get   使用   数据      

原文地址:http://www.cnblogs.com/UnixAgain/p/3800489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!