我现在知道类 对象 接口 但我不知道一个项目应该怎么构架类 行为 属性请问我应该看那方面的书呀~~如题~~很是迷惑~
解决方案 »
- 有做PHP网站电子商务平台接口的吗?
- *PHP新手请教: PHP 怎么对汉字进行MD5? *
- 关于正则表达式
- 各位前辈,我迫切想知道能运行PHP+Apache+SQL Server2000是如何配置的。
- PHP5.0里面关于SQL的问题
- php中有没有象功能如asp中的response.Redirect"url" 涵数?
- 请问怎么实现主域和子域共享SESSION?
- PHP能解决这些需求吗:感知浏览器被关掉和几分钟内浏览器没有任何的点击动作
- 如果有个同事上班时间平均每5分钟看你的电脑屏幕一眼,你怎么办?每天如此啊,我快要受不了了,帮我出个主意。
- 变量问题
- 数据库编码GBK,页面是UTF8
- 请问下列代码的问题,关于imagettftext的字体颜色问题。
<?php
//老师
class teacher{
//老师会画方法,给指定的对象($object)画上一个形状($shape)
public function Draw($object,$shape){
$object->contents[]=$shape;
}
}
//黑板
class blackBoard{
public $contents=array(); //黑板上画的东西
}
//纸
class paper{
public $content=array(); //纸上画的东西
}$teacher=new teacher(); //老师出场
$blackBoard=new blackBoard(); //实例化一块黑板
$paper=new paper(); //实例化一张纸$teacher->Draw($blackBoard,'圆'); //老师先在黑板上画个圆
$teacher->Draw($blackBoard,'三角'); //再画个三角
$teacher->Draw($paper,'圆'); //接着在纸上画个圆
$teacher->Draw($paper,'三角'); //接着在纸上画了个三角
$teacher->Draw($paper,'正方形'); //接着画个正方形print_r($paper->contents); //看看纸上都画了些什么
print_r($blackBoard->contents); //看看黑板上画了些什么
我的回答是: 都可以
因为"画"这个动作,它们3方都有参与,而且都不可缺. 在任何一方实现都是可以的写法.
这个是你在设计阶段要决定的,而且也有可能在重构时改变.
放在哪里能让你的设计更容易理解,更简单等等...就更好同时, 应该在设计时保持一致性, 比如一般不应该"老师"里也有一个"画","圆"里也有一个"被画",
这样让人疑惑,而且很可能是重复的代码, 同样的, 如果"圆"里有"被画","正方形"里也应该有个"被画",
这时你可以将这个"被画"抽象到他们的抽象父类"形状"里去....当你面对不同的需求的时候,你会发现不同的设计会带来不同的感觉和后果,
所以,相比于这样比较"虚"的例子,你不如去直接写一个小小的实际的项目,(比如一个小bbs?)
那样更容易让需求具体化,可以写出实际的代码,也就能更好地体会.