近期在写rest接口时,发如今接口中大量使用了elseif switch...等状态判断语句,为了减小这样的重复语句,增长代码可读性,经朋友建议选择使用设计模式之状态模式对代码进行改造。在改造过程当中遇到一个问题,php中抽象类是否能够继承具体类,搜索了一番没有满意的答案,因而本身测试,下面是本身的测试例子。php
//基类Rest <?php class Rest{ /*http head信息*/ Const HTTP_OK = '200'; Const HTTP_CREATED = '201';/ Const HTTP_Accepted = '202'; Const HTTP_NoContent = '204'; Const HTTP_InvalidRequest = '400'; Const HTTP_Unauthorized = '401';/。 Const HTTP_Forbidden = '403'; Const HTTP_NotFound = '404'; Const HTTP_NotAcceptable = '406'; } //abstract 抽象类 abstract class myAbstract extends Rest{ //抽象类方法(注意抽象类方法以 ;结束,没有具体操做) public abstract function first(); } //抽象类子类 class chrild extends myAbstract{ //重写抽象类方法(注意继承抽象类的子类必须重写抽象类中的全部抽象方法) public function first(){ echo parent::HTTP_OK; } } //实例化子类 $test = new chrild(); $test->first(); //输出结果为 200
重结果上看,抽象类myAbstract确实继承了具体类Rest,实时证实抽象类是能够继承具体类的。 分享的是本人开发过程当中的一点经验,如有不对的地方,欢迎指点。设计模式