UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#245 PHP クラス(カプセル化)について

記入日:2023-09-10 編集日:2023-09-10

PHP クラス(カプセル化)について解説をしてみようと思います。

この記事を読むと(約5分)
PHP クラス(カプセル化)についてイメージできます。

PHP クラス(カプセル化)

カプセル化(Encapsulation)は、オブジェクト指向プログラミング(OOP)の基本的な概念の1つです。
これは、データ(プロパティ)とそのデータを操作するメソッドを一緒にまとめ、外部からの不正なアクセスを制限するプロセスです。

具体的には、以下のようなポイントがあります:

  1. データの隠蔽
    カプセル化によって、クラス内のデータは外部から直接アクセスできないようになります。代わりに、メソッドを通じてデータにアクセスする必要があります。
  2. データの整合性を保つ
    メソッドを通じてデータにアクセスすることで、データの整合性を保つことができます。例えば、特定の条件を満たさない場合にデータの変更を防ぐことができます。
  3. コードの安全性を向上
    データの直接的なアクセスを制限することで、不正な操作やバグを防ぐことができます。これにより、安全性が向上します。
  4. インターフェースの抽象化
    クラスの外部からは、どのように実装されているかを知る必要がありません。代わりに、公開されているメソッドを通じて操作できるため、内部の実装を変更しても外部のコードに影響を与えません。
  5. メンバーの命名の自由度
    カプセル化によって、内部のデータやメソッドの名前を自由に変更できるため、コードのリファクタリングが容易になります。
  6. 再利用性の向上
    データのアクセスをメソッドを通じて行うため、同じクラスを使って異なる場所で使い回すことができます。

以下は、PHPでのカプセル化の例です:

class Person {
  private $name;
  private $age;

  public function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }

  public function getName() {
    return $this->name;
  }

  public function getAge() {
    return $this->age;
  }

  public function setAge($newAge) {
    if ($newAge >= 0) {
      $this->age = $newAge;
    }
  }
}

この例では、Person クラスがあり、$name と $age という2つのプロパティがあります。これらのプロパティは private であり、外部から直接アクセスできません。代わりに、getName メソッドと getAge メソッドを通じて、それぞれの情報にアクセスできます。また、setAge メソッドを使って、新しい年齢を設定することができますが、0以上の値でない場合は設定されません。

カプセル化によって、データの整合性が保たれ、コードの安全性が向上します。また、外部からの不正なアクセスを防ぐことで、クラスの設計を安定させる助けになります。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。