深入PHP:面向对象、模式与实践(第5版)

最新书摘:
  • Ryan Chan
    2017-12-03
    注解把一个用于生成子对象的静态方法放在父类中是很方便的,然而这样的设计也有不足之处。 Paramhandler类型现在只能与条件语的中规定的类一起工作。如如果需要处理其他格式的文件,怎么办呢?当然,如果你是 Paramhandler的维护者,可以修改 getinstance()方法。但是如果你只是这段代码的使用者,修改这个类就不是那么容易了(实际上,修改它并不难,但是每次重新安装这个包的时候都需要再次修改)。我们将会在第9章中讨论对象创建的问题
  • 游鱼戏水
    2013-11-21
    在接口级别上,我们可以立即定义两个类。其一是需要一个数据编码器来把Appointment对象转成一个专有的格式,将这个编码器命名为ApptEncoder;另外需要一个管理员类来获取编码器,并使用编码器与第三方进行通信,我们将这个管理类命名为CommsManager类。
  • DavidTian
    2012-08-01
    如果修改了一个静态属性,那么这个类的所有实例都能访问到这个新值。
  • DavidTian
    2012-08-01
    静态方法是以类作为作用域的函数。静态方法不能访问这个类中的普通属性,因为那些属性属于一个对象,但可以访问静态属性
  • Ryan Chan
    2017-12-03
    为了说明以上几点,我们分别用面向对象和过程式代码的方式来分析一个简单的问题。假设我们创建一个用于读写配置文件件的工具。为了重点关注代码的结构,示例中将忽略具体的功能实现。我们先按过程式方式来解决这个问题。首先,用下面的格式来读写文本: key : value只需要两个函数 function readparams ( ssourcefile ) ( Prams = array ( )/从 Ssourcefi1e中读取文本参数 return spramsi function writeparams ( params , ssourcefile )/写入文本参数到 sourcer1e