我现在知道类 对象 接口  但我不知道一个项目应该怎么构架类 行为 属性请问我应该看那方面的书呀~~如题~~很是迷惑~

解决方案 »

  1.   

    《深入PHP面向对象,模式与实践》先看十遍
      

  2.   

    程序员的读书历程:语言入门 —>语言应用实践 —>语言高阶编程 —>语言的科学与艺术 —>编程之美 —>编程之道 —>编程之禅 —>颈椎病康复指南
      

  3.   

    帮你写了个例子,看注释应该会很清晰了
    <?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); //看看黑板上画了些什么
      

  4.   

    4楼的书目前不推荐,因为那个不是面向对象入门书. 大部分OO分析/设计/编程的书是用java/c++等写成,php的有,但是不推荐. 所以,去找java的书你7楼的问题, "请问 画(圆)这个行为 在那个写 应该是人,还是黑板呀 还是圆"
    我的回答是: 都可以
    因为"画"这个动作,它们3方都有参与,而且都不可缺. 在任何一方实现都是可以的写法. 
    这个是你在设计阶段要决定的,而且也有可能在重构时改变. 
    放在哪里能让你的设计更容易理解,更简单等等...就更好同时, 应该在设计时保持一致性, 比如一般不应该"老师"里也有一个"画","圆"里也有一个"被画",
    这样让人疑惑,而且很可能是重复的代码, 同样的, 如果"圆"里有"被画","正方形"里也应该有个"被画",
    这时你可以将这个"被画"抽象到他们的抽象父类"形状"里去....当你面对不同的需求的时候,你会发现不同的设计会带来不同的感觉和后果, 
    所以,相比于这样比较"虚"的例子,你不如去直接写一个小小的实际的项目,(比如一个小bbs?)
    那样更容易让需求具体化,可以写出实际的代码,也就能更好地体会.