<?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

相关笔记

更多