<?php
/*
 * WEB开发笔记 www.chhua.com 每日练习 PHP面向对象编程——开放封闭原则(OCP)
“对扩展开放,对修改封闭”
 */

/*代码演示
 * */
function hello(){
 echo “Hello www.chhua.com!”;
}
//改善后如下:
function webhello($web){//OCP之后
 echo “Hello “.$web.”!”;
}

//类的情况如下,按照不同类型向不同的表中插入数据

class insertClass {
 public function insert($type,$data){
  switch ($type){
   case “text”:
    $sql=”INSERT INTO News (title,body) VALUES(‘”.$data["title"].”‘,’”.$data["body"].”‘)”;
    break;
   case “news”:
    $sql=”INSERT INTO Text (title,body) VALUES(‘”.$data["title"].”‘,’”.$data["body"].”‘)”;
    break; 
  }
 }
}
//以上看上去虽然比较简单,可是,不能降低程序的耦合性,影响程序后来功能 的扩展和维护,改善之后 如下:

abstract class insertAbs{
 abstract function insert($data);
}

class TextInsert extends insertAbs{
 public function insert($data){
  $sql=”INSERT INTO News (title,body) VALUES(‘”.$data["title"].”‘,’”.$data["body"].”‘)”;
 }
}

class NewsInsert extends insertAbs{
 public function insert($data){
  $sql=”INSERT INTO Text (title,body) VALUES(‘”.$data["title"].”‘,’”.$data["body"].”‘)”;
 }
}
/*
 * 以上代码充分的体现了PHP面向对象编程中,开放封闭原则的应用和实现,如有问题,请经常关注我的博客WWW.CHHUA.COM
 * */
?>

自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

本文链接地址: PHP面向对象编程——开放封闭原则(OCP) http://www.chhua.com/web-note1106

相关笔记

更多