Blogger Information
Blog 29
fans 0
comment 0
visits 27334
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP基础:interface接口+trait组件+抽象类综合实例练习
暴宇
Original
708 people have browsed it

PHP基础:interface接口+trait组件+抽象类综合实例练习

1.实现思路

1.1用interface接口作为顶层设计,将核心设计代码放入接口中
1.2用trait组件作为功能模块,将公用模块代码放入trait中
1.3用抽象类作为功能区,将trait组件引入抽象类,并将相关抽象方法放入抽象类
1.4最后用工作类继承抽象类,实现抽象类中的抽象方法
1.5客户端实例化工作类,访问相关的方法即可

2.代码示例

  1. // trait+interface+抽象类
  2. // interface顶层设计类
  3. interface iface{
  4. const MYNAME='暴宇';
  5. public function ifun();
  6. }
  7. // trait组件1
  8. trait td1{
  9. public function tfun(){
  10. return 'td1组件方法:'.__METHOD__;
  11. }
  12. }
  13. // trait组件2
  14. trait td2{
  15. public function tfun(){
  16. return 'td2组件方法:'.__METHOD__;
  17. }
  18. }
  19. // 抽象类
  20. abstract class aclass implements iface{
  21. // 嵌入组件1和组件2
  22. use td1,td2{
  23. td1::tfun insteadOf td2;
  24. td2::tfun as tfun2;
  25. }
  26. // 实现接口方法
  27. public function ifun(){
  28. return '在抽象类中被实现的接口方法:'.__FUNCTION__;
  29. }
  30. abstract function acfun();
  31. }
  32. // 工作类
  33. class job extends aclass{
  34. // 实现抽象类方法
  35. public function acfun(){
  36. return '在工作类中被实现的抽象类方法:'.__FUNCTION__;
  37. }
  38. }
  39. // 实例化工作类
  40. $job=new job;
  41. echo $job->tfun(),'<hr>';
  42. echo $job->tfun2(),'<hr>';
  43. echo $job->ifun(),'<hr>';
  44. echo $job->acfun(),'<hr>';
  45. echo iface::MYNAME,'<hr>';

3.运行效果图

4.总结

4.1 interface接口起到了核心代码保护和简化客户端代码的效果

4.2 trait组件起到了代码模块化复用的效果,

4.3 抽象类起到了承上启下的效果,连接接口与工作类

4.4 工作类是实现具体功能调用的,直接面向客户的

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:interface的作用远不止这些, 后面还会用到
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post