クラスの書き方

Jun 20, 2016 pm 12:31 PM

書籍「コード百科事典」では、抽象データ モデル (ADT) の概念について説明しています。PHP の観点から見ると、最も一般的なクラスは抽象データ モデルの表現です。抽象データ モデルの概念については、オブジェクト プログラミングはまだ無知な段階にあり、すべてのメソッドが 1 つのクラスに詰め込まれていることがよくあります。たとえば、次のコードを持つフォント クラスがあります。 class は public 属性「style」、Style を取得するメソッド、およびその他のサブメソッドを定義します。このクラスはもともと「フォント」を扱うために作成されましたが、実装プロセス中に一時的に需要が増加したため、追加されました。 Div とフォントをこのクラスに挿入する方法、これは非常に一般的な状況ですが、これは単なる始まりにすぎません。ゴミが存在しないのと同じように、ますます多くのコードが存在します。誰かが最初のゴミを投げると、ゴミのように、最終的にはクラスの維持が困難になり、可読性が低下します。その理由は、クラスに関係のないコードが抽象を破壊するためです。クラスの一貫性。

<?phpclass Font{    public $style; // 字体样式    public function getStyle()    {        // code ..    }    public function createDiv()    {        // code ..    }    public function insertFontToDiv()    {        // code ..    }}
ログイン後にコピー
さらに、このクラスの style 属性にも問題があります。その型は public です。つまり、いつでも外部から呼び出して書き換えることができ、その場合、外部コードは <🎜 になります。 >

または:

$font = new Font;$font->style = 'font-size: 13px';
ログイン後にコピー
など、時間が経つと、いつか製品があなたのところに来て、笑顔でこう言います。「陳さん、お願いします」各フォントに 14 ピクセルのデフォルトのフォント サイズを追加します。

あなたは混乱した表情と絶望的な表情で製品 (彼、彼女、またはそれ) を見ます: ...わかりました、半日ください。
$font = new Font;$font->style = 'font-weight: both';
ログイン後にコピー

製品: #¥%……&*(&……%#¥%……&*;

コードを検索して置き換えるときに、こっそりとなぜ Font クラスに style 属性を変更する関数を定義しないのかと自分を呪いながら、経験を総括し、プログラマは常に痛い経験を経て成長することはないと自分に言い聞かせます。とても良い本、または良い指導者であれば、とても簡単になります (コード百科事典の別の宣伝)

最初の段落では、抽象化とは何かについて説明しました。 ? オブジェクト指向には 1 つの原則があり、それはこの 1 つの原則と同じであり、その 1 つの原則は、カテゴリの 1 つの原則と 1 つのメソッドに分けられます。たとえば、人間には食べる、飲む、排尿するという 4 つの行動があり、それらは 1 つのカテゴリ (人) と 1 つの方法 (食べる、飲む、うんち、おしっこ) の原則を持っています。ここでは「人」です。これに飛行動作を追加すると、クラスの単一の原則と抽象化が破壊されます。飛行動作を追加した後、人々が「食べる、飲む、うんちをする、飛ぶ」という 5 つの動作を使用して検証してみましょう。

「凝集度が高く、結合度が低い」は、優れたクラスを書くための中心的な考え方であり、抽象 (Unity) は結合度の低いコードを書くのに役立ちます。結束力の高さについて 結束力が強いコードを書くと、それに伴うメンテナンスが容易になります。上記の例では、プログラマが style 属性を public に設定し、それを直接変更しました。外部コードでは、後続の問題が発生しました。これらの変更しやすい要素は、サブルーチン (メソッド) を通じて変更する必要があります。保守性を高めるには、クラス内のすべての変更を制御して、クラスの凝集性を高めます。理論は想像上のものであり、コードを見せてもらうことが進歩への最良の方法です。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

See all articles