著者:レオン・アトキンソン 翻訳:Haohappy
オブジェクト指向プログラミングは、大規模なソフトウェア プロジェクト、特に複数人が関与するプロジェクトにソリューションを提供するように設計されています。ソース コードが 10,000 行以上になると、すべての変更が望ましくない副作用を引き起こす可能性があります。これは、モジュールが秘密の同盟を形成する場合に発生します。第一次世界大戦前のヨーロッパのようなものです。
//haohappy 注: これは、モジュール間の相関関係が高すぎ、相互依存性が強すぎることを意味します。1 つのモジュールを変更すると、他のモジュールも変更する必要があります。
ログインを処理するモジュールが、クレジット カード処理モジュールがそのデータベース接続を共有できるようにする場合を想像してください。もちろん、出発点は適切であり、コストを節約できます。ただし、別のデータベース接続を行うために、ログイン処理モジュールが変更される場合があります。変数の 1 つの名前が、2 つの間の合意を分断し、クレジット カード モジュールでの処理エラーを引き起こし、それがやがて請求書処理モジュールでのエラーにつながる可能性があるため、ほとんどの場合は少し劇的だと思います。プログラマーは結合とカプセル化に感謝します。結合は 2 つのモジュール間の依存度です。結合が少ないほど、既存のプロジェクトからモジュールを取得して、それを別の新しいプロジェクトで使用できるようになります。 >また、他のモジュールへの影響を心配することなく、モジュール内で大規模な変更を行うこともできます。カプセル化の原理により、モジュールは比較的独立したものとして扱われ、モジュール間のデータ通信はモジュールを通じて実行されます。相互の変数名を介して別のモジュールを覗き見するのではなく、関数を介して丁寧にリクエストを送信します。
カプセル化は、PHP や多くの手続き型言語で使用できる原則です。オブジェクト指向プログラミングは、プログラマがカプセル化の原則に違反しない方法です。モジュールはオブジェクトに編成されます。これらのオブジェクトにはメソッドとプロパティがあります。抽象的な観点から見ると、メソッドはオブジェクトが実行するアクションであり、プログラミングの観点からはメソッドは関数であり、プロパティは変数です。理想化された世界 オブジェクト指向システムでは、システムはオブジェクトと、メソッドを介したオブジェクト間の関係で構成されます。セットをベイクする場合、クラスはオブジェクトのプロパティを定義します。スイーツ Pie オブジェクトの場合、クラスは Cookie マシンになります。クラスのプロパティとメソッドは、データ メンバーまたはメソッド メンバーと呼ばれます。
言語ごとに異なります。 PHP はオブジェクトにアクセスする方法を C から借用し、識別子の下に関数と変数を含めるためのデータ型を提供します。 PHP が最初に設計されたとき、そして PHP3 が開発されたときでさえ、PHP はコード 100,000 行を超える大規模プロジェクトを開発する機能を提供することを目的としていませんでした。 PHP と Zend Engine の開発により、大規模なプロジェクトを開発できるようになりましたが、プロジェクトがどれほど大きくても、クラス内にスクリプトを記述することでコードを再利用できます。これは、特に自分のコードを他の人と共有したい場合には良いアイデアです。
オブジェクトの考え方は、コンピューター サイエンスの中で最も刺激的な概念の 1 つです。最初はそれをマスターするのは難しいですが、一度マスターすれば、心で考えることが非常に自然に感じられるようになるでしょう。