ホームページ よくある問題 経営情報システムのコード設計におけるコーディングの目的は何ですか?

経営情報システムのコード設計におけるコーディングの目的は何ですか?

Aug 28, 2020 pm 02:16 PM
コーディング

コーディングの目的は、独自性、標準化、体系化です。コードはさまざまな目的物を数字や文字で表現したもので、システム開発においてコードを設計する目的は、独自性、標準化、体系化です。

経営情報システムのコード設計におけるコーディングの目的は何ですか?

コードでは、数字や文字を使用してさまざまな目的の実体を表現します。システム開発プロセスでコードを設計する目的は次のとおりです。

1. ユニークなコード化;

2. 標準化;

3. システム化。

コード設計の 6 つの原則

単一責任の原則

定義: 1 つの A クラス、またはインターフェースは 1 つの責任のみを最もよく担当します。

問題の原因: クラス T は、2 つの異なる責任 P1 と P2 を担当します。責任P1を変更する必要があり、Tクラスも変更する必要があるため、本来正常に動作していた責任P2の機能が誤動作する可能性があります。

解決策: 単一責任の原則に従います。対応する責任に対応する新しいクラスをそれぞれ作成します。こうすることで、クラスの変更による他の責任への影響を回避できます。

責任の増大に遭遇した場合、ロジックが十分に単純な場合にのみ、ルールに違反します。コード レベルでの単一責任の原則。クラス内のメソッドの数が十分に少ない場合にのみ、メソッド レベルで単一責任の原則に違反できます。

利点: クラスの複雑さは軽減されます。大幅に改善され、メンテナンス性も向上します。

Liskov 置換原則

# 基底クラスが使用される場合、そのサブクラスは任意に使用でき、これにより、サブクラスが基底クラスを完全に置換できることが保証されます。精神は実際には、継承メカニズムの制約と規範を具体化したものです。親クラスとサブクラスの特定の実装では、基本クラスをサブクラスに置き換えるときにプログラムの動作が問題を引き起こさず、正常に続行できるように、継承階層内の関係特性が厳密に制御されます。

継承については、親クラスが一連の仕様や規約を定義しており、すべてのサブクラスがこれに従う必要はありませんが、サブクラスがこれらの非抽象メソッドを任意に変更すると、継承システム全体に影響を及ぼします。損傷を与えます。

親クラスのメソッドを書き直す必要がある場合、より一般的な方法は、元の親クラスとサブクラスの両方がより一般的な基本クラスを継承し、元の継承関係を削除し、依存関係を使用することです。代わりに、集約、組み合わせ、その他の関係;

原則には、次の 4 つのレベルの意味が含まれます:

* サブクラスは、親クラスの抽象メソッドを実装できますが、非クラスの抽象メソッドをオーバーライドすることはできません。 -親クラスの抽象メソッド メソッド;

* サブクラスは独自の一意のメソッドを追加できます;

* サブクラスのメソッドが親クラスのメソッドをオーバーライドする場合、その仮パラメータはメソッドの入力パラメータが親クラスのメソッドの入力パラメータより大きい、より緩やか、より良い;

* サブクラスのメソッドが親クラスの抽象メソッドを実装する場合、メソッドの戻り値はそれよりも厳密になります親クラスの;

依存逆転の原則

定義: 高レベルのモジュールは低レベルのモジュールに依存すべきではなく、両方ともその抽象化に依存する必要があり、抽象化は詳細に依存しない; 詳細は抽象化に依存する必要があり、中心的な考え方は抽象化に依存することです;

問題の原因: クラス A はクラス B に直接依存します。クラス C の場合は、クラス A のコードを変更する必要があります。このシナリオでは、通常、クラス A は複雑なビジネス ロジックを担当する高レベル モジュールです。クラス B とクラス C は、基本原理の操作を担当する低レベル モジュールです。クラス A の場合は、変更すると、プログラムに不必要なリスクがもたらされます。

解決策: インターフェイス I に依存するようにクラス A を変更します。クラス B とクラス C はそれぞれインターフェイス I を実装します。クラス A はインターフェイス I を通じて間接的にクラス B とクラス C に接続します。これにより、クラス A を変更するコストが削減されます。確率;

実際には、通常、次の 3 つの点を行う必要があります。

* 低レベルのモジュールには、抽象クラスまたはインターフェイス、あるいはその両方が必要です。

*宣言された変数の型は、可能な限り抽象クラスまたはインターフェイスである必要があります。

#* 継承を使用する場合は、Liskov 置換原則に従います。

#インターフェイス分離原則

定義: クライアントは、必要のないインターフェイスに依存すべきではありません。あるクラスの別のクラスに対する依存関係は、最小のインターフェイスに基づく必要があります。そうしないと、インターフェイス汚染が発生します。クラス A は、インターフェイス I を通じてクラス B に依存します。 、クラス C はインターフェイス I を通じてクラス D に依存します。インターフェイス I がクラス A とクラス B の最小インターフェイスではない場合、クラス B とクラス D は必要のないメソッドを実装する必要があります。

の意味原則は次のとおりです: 単一のインターフェイスの場合、巨大で肥大化したインターフェイスを構築しないでください。インターフェイスをできる限り改良し、インターフェイス内のメソッドをできるだけ少なくするようにしてください。つまり、専用のインターフェイスを確立する必要があります。依存するすべての人のために巨大なインターフェイスを構築しようとするのではなく、各クラスを呼び出します。呼び出すクラス;

インターフェイスはできるだけ小さくする必要がありますが、制限があることに注意してください。インターフェースによりプログラミングの柔軟性が向上しますが、小さすぎるとインターフェースの数が最小限になり、設計が複雑になります。インターフェイスに依存するクラスのサービスをカスタマイズします。必要なメソッドのみを呼び出しクラスに公開し、必要のないメソッドは非表示にします。

ルール:

* インターフェイスは 1 つのサブモジュールまたはビジネス ロジックのみを提供し、カスタマイズを提供します。

* インターフェイスの外観をより簡潔にするために、ビジネス ロジックを通じてインターフェイス内のパブリック メソッドを圧縮します。

* 汚染されたインターフェイスは可能な限り変更します。変更のリスクが大きすぎる場合は、アダプター モードを使用して変換します。

* 特定のビジネスに応じて、ロジックを深く理解し、心を使って設計アイデアをコントロールしてください。

インターフェイスの分離を実装する方法には、主に 2 つの方法があります:

1. 委任の分離。新しいインターフェイス タイプを追加して顧客のリクエストを委任します。顧客とインターフェイスの間の直接の依存関係を分離することにより、システムのオーバーヘッドも増加することに注意してください;

##2. 多重継承を分離し、インターフェイスの多重継承を通じて顧客のニーズを実現します;

#ディミッターの法則

定義: オブジェクトは、他のオブジェクトについての知識を最小限にとどめるべきです。中心となる精神は、見知らぬ人と話さないことです。一般的な意味は、オブジェクトはクラスについての知識をあまり持たないほうがよいということです呼び出すためには結合して関連付ける必要があるため、クラス間の結合の度合いが減り、各クラスが他のクラスへの依存を最小限に抑えることができます。

合成と再利用の原則

原則は、継承ではなく可能な限り合成/集約を使用することです;

オープンと終了原則

定義: クラス、テンプレート、関数などのソフトウェア エンティティは、拡張や変更に対して閉鎖されるべきです;

解決策: ソフトウェアを変更する必要がある場合は、次のことを試みてください。ソフトウェア エンティティの動作を拡張します。変更を実装するために既存のコードを変更するのではなく、変更を実装します。

#単一責任の原則: 実装クラスは単一の責任を持つ必要があります。
  • リヒター置換の原則: 継承システムを破壊しない;
  • 依存関係逆転の原則: インターフェイス指向プログラミング;
  • インターフェイス分離原則: インターフェイスを設計するときは注意してください 単純なもの;
  • デミットの法則: 結合を減らす;
  • 開閉原則: 一般的な概要、オープン拡張は可能、変更は禁止;
関連知識の詳細については、

PHP 中国語 Web サイト

をご覧ください。

以上が経営情報システムのコード設計におけるコーディングの目的は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

11 の一般的な分類特徴エンコード技術 11 の一般的な分類特徴エンコード技術 Apr 12, 2023 pm 12:16 PM

機械学習アルゴリズムは数値入力のみを受け入れるため、カテゴリカルな特徴が見つかった場合は、そのカテゴリカルな特徴をエンコードします。この記事では、11 の一般的なカテゴリカル変数のエンコード方法を要約します。 1. ONE HOT エンコーディング 最も一般的で一般的に使用されているエンコーディング方式は One Hot Enoding です。 n 個の観測値と d 個の個別の値を持つ単一の変数は、n 個の観測値を持つ d 個のバイナリ変数に変換され、各バイナリ変数はビット (0, 1) で識別されます。例: コーディング後の最も簡単な実装は、パンダの get_dummiesnew_df=pd.get_dummies(columns=[‘Sex’], data=df)2 を使用することです。

utf8 でエンコードされた中国語の文字は何バイトを占めますか? utf8 でエンコードされた中国語の文字は何バイトを占めますか? Feb 21, 2023 am 11:40 AM

UTF8 でエンコードされた中国語文字は 3 バイトを占めます。 UTF-8 エンコードでは、1 つの中国語文字は 3 バイトに相当し、1 つの中国語の句読点は 3 バイトを占めますが、Unicode エンコードでは、1 つの中国語文字 (繁体字中国語を含む) は 2 バイトに相当します。 UTF-8 は各文字のエンコードに 1 ~ 4 バイトを使用します。1 つの US-ASCIl 文字のエンコードには 1 バイトのみが必要です。ラテン語、ギリシャ語、キリル文字、アルメニア語、および発音区別符号付きのヘブライ語。アラビア語、シリア語およびその他の文字は 2 バイトが必要です。エンコーディング。

ナレッジ グラフ: 大規模モデルの理想的なパートナー ナレッジ グラフ: 大規模モデルの理想的なパートナー Jan 29, 2024 am 09:21 AM

大規模言語モデル (LLM) は、滑らかで一貫したテキストを生成する機能を備えており、人工知能の会話や創造的な文章などの分野に新たな可能性をもたらします。ただし、LLM にはいくつかの重要な制限もあります。まず、彼らの知識はトレーニング データから認識されたパターンに限定されており、世界に対する真の理解が欠けています。第 2 に、推論スキルには限界があり、論理的な推論を行ったり、複数のデータ ソースからの事実を融合したりすることができません。より複雑で自由回答の質問に直面すると、LLM の答えは「幻想」として知られる不条理または矛盾したものになる場合があります。したがって、LLM はいくつかの面では非常に便利ですが、複雑な問題や現実世界の状況を扱う場合には、依然として一定の制限があります。これらのギャップを埋めるために、検索拡張生成 (RAG) システムが近年登場しました。

いくつかの一般的なエンコード方法 いくつかの一般的なエンコード方法 Oct 24, 2023 am 10:09 AM

一般的なエンコード方法には、ASCII エンコード、Unicode エンコード、UTF-8 エンコード、UTF-16 エンコード、GBK エンコードなどがあります。詳細な紹介: 1. ASCII エンコードは、英語の文字、数字、句読点、制御文字などを含む 128 文字を表すために 7 ビット 2 進数を使用する、最も初期の文字エンコード標準です; 2. Unicode エンコードは、文字を表すために使用される方法です。世界中のすべての文字 各文字に固有のデジタル コード ポイントを割り当てる文字の標準的なエンコード方式、3. UTF-8 エンコードなど。

PHPデータベースクエリ結果のエンコードの問題を解決する方法 PHPデータベースクエリ結果のエンコードの問題を解決する方法 Mar 21, 2023 am 11:49 AM

PHP は、動的な Web ページやアプリケーションの作成に使用できる人気のある Web プログラミング言語です。実際のアプリケーションでは、PHP は多くの場合、データのクエリと処理を行うためにデータベースと対話する必要があります。ただし、PHP を使用してデータベースから結果を取得する場合、エンコードの問題が発生する可能性があり、文字化けが発生することがよくあります。では、PHP データベースのクエリ結果のエンコードの問題を解決するにはどうすればよいでしょうか?

PHP コーディングのヒント: 偽造防止検証機能を備えた QR コードを生成するには? PHP コーディングのヒント: 偽造防止検証機能を備えた QR コードを生成するには? Aug 17, 2023 pm 02:42 PM

PHP コーディングのヒント: 偽造防止検証機能を備えた QR コードを生成するには?電子商取引やインターネットの発展に伴い、QRコードはさまざまな業界で使用されることが増えています。 QRコードの利用にあたっては、製品の安全性を確保し、偽造を防止するために、QRコードに偽造防止検証機能を付加することが非常に重要です。この記事では、PHPを使用して偽造防止検証機能付きQRコードを生成する方法と、対応するコード例を紹介します。始める前に、次の必要なツールとライブラリを準備する必要があります: PHPQRCode: PHP

GenAI に基づいてコーディングのパフォーマンスを向上させる方法を 1 つの記事で学びましょう GenAI に基づいてコーディングのパフォーマンスを向上させる方法を 1 つの記事で学びましょう Apr 01, 2024 pm 06:49 PM

こんにちは、私の名前はルーガです。今日は人工知能 (AI) の生態分野に関連するテクノロジー、GenAI についてお話します。急速な技術革新と差別化されたビジネスシナリオという課題に直面し、従来のコーディング手法は慣れ始めており、増大する需要に完全に対応できなくなっています。同時に、新興の汎用 GenAI (人工知能テクノロジー) は、この需要を満たす大きな可能性を秘めています。 GenAIは人工知能テクノロジーの代表として、その強力な可能性と機能によりあらゆる分野で広く使用され始めています。さまざまなシナリオでのコーディングのニーズを自動的に学習して適応できるため、コーディングの効率と品質が大幅に向上します。ディープラーニングとモデルの最適化を通じて、GenAI はさまざまなデータを正確に理解することができます。

HDB3 エンコード ルールとは何ですか? HDB3 エンコード ルールとは何ですか? Aug 29, 2023 pm 01:38 PM

コーディング規則は次のとおりです: 1. 前のコードが 0 で現在のデータ ビットが 0 の場合、コードは 0; 2. 前のコードが 0 で現在のデータ ビットが 1 の場合、コードはバイポーラ パルス (+A)または - A) カウンターは 1 増加します; 3. 前のコードが 1 で現在のデータ ビットが 1 の場合、コードは 0 でカウンターは 1 増加します; 4. 前のコードが 1 の場合, 現在のデータ ビットは 0, エンコード方式はカウンタのパリティに基づいて決定されます。偶数の場合、エンコードは (+B または -B) です。奇数の場合、エンコードは 0 です。レベルとカウンタがクリアされるなどです。