一.替换原则:
1.子类必须能替换成它们的基类,并出现在父类能够出现的任何地方。
2.LSP原则所需要解决的问题:
a.正如何正确地进行继承方面的设计
b.最佳的继承层次如何获得
c.避免所设计的类层次陷入不符合OCP原则的状况
3.遵守此原则的方式:
a.父类的方法都要在子类中实现或重写,并且派生类只实现其抽象类中声明的方法,但不能给出多余的方法定义或实现。
b.在客户端程序中只应该使用父类对象而不应该直接使用子类对象。这样可以实现运行期绑定。(动态多态)
1.子类必须能替换成它们的基类,并出现在父类能够出现的任何地方。
2.LSP原则所需要解决的问题:
a.正如何正确地进行继承方面的设计
b.最佳的继承层次如何获得
c.避免所设计的类层次陷入不符合OCP原则的状况
3.遵守此原则的方式:
a.父类的方法都要在子类中实现或重写,并且派生类只实现其抽象类中声明的方法,但不能给出多余的方法定义或实现。
b.在客户端程序中只应该使用父类对象而不应该直接使用子类对象。这样可以实现运行期绑定。(动态多态)
二.实例:
<?php
abstract class Cache{
/*
* 设置一个缓存变量
*
* @param String $key 缓存key
* @param mixed $value 缓存内容
* @param int $expire 缓存时间(秒)
* return boolean 是否缓存成功
*/
public abstract function set($key,$value,$expire=60);
/*
* 获得一个已经缓存的变量
* @param String $key 缓存key
* @return mixed 缓存内容
*/
public abstract function get($key);
/*
* 删除一个已经缓存的变量
* @return boolean 是否删除成功
*/
public abstract function del($key);
/*
* 删除全部缓存变量
* @return boolean 是否删除成功
*/
public abstract function delAll($key);
/*
* 检测是否已经存在对应的缓存
*/
public abstract function has($key);
}