(8) オブジェクト指向設計原則 4

WBOY
リリース: 2016-07-30 13:31:59
オリジナル
826 人が閲覧しました

1つ。置換の原則:
1. サブクラスはその基本クラスと置換可能であり、親クラスが出現できる場所であればどこにでも出現する必要があります。
2. LSP 原則によって解決する必要がある問題:
a. 継承を正しく設計する方法
b. 最適な継承階層を取得する方法
c. 設計されたクラス階層が準拠しない状況に陥ることを回避するOCP 原則
3. この原則に準拠する方法:
a. 親クラスのすべてのメソッドはサブクラスで実装または書き換える必要があり、派生クラスはその抽象クラスで宣言されたメソッドのみを実装しますが、冗長なメソッド定義を与えることはできません。または実装。
b. クライアント プログラムでは親クラス オブジェクトのみを使用し、サブクラス オブジェクトを直接使用しないでください。これにより、実行時バインディングが有効になります。 (動的ポリモーフィズム)

2.例:

<?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);
}
ログイン後にコピー

著作権表示: この記事はブロガーによるオリジナル記事であり、ブロガーの許可なく複製することはできません。

以上、4番目のオブジェクト指向設計原則(8)を内容面も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート