Pythonプログラムでオブザーバーパターン構造を記述する
オブザーバー パターン定義
は、オブジェクト間の 1 対多の依存関係を定義します。これにより、オブジェクトの状態が変化すると、そのすべての依存関係が通知され、自動的に更新されます。 Observer パターンは、被験者と観察者の間に疎結合を提供するオブジェクト設計を提供します。
デザイン原則
インタラクティブなオブジェクト間の疎結合デザインに努めます。疎結合設計によって変化に対応できる柔軟なシステムを構築できるのは、オブジェクト間の相互依存性が最小限に抑えられているためです。
モードの構造と説明
1.Subject: サブジェクト(ターゲット)インターフェイス。サブジェクトは、興味のあるオブザーバーを登録および削除でき、また、自身のデータがオブザーバーを変更したときにオブザーバーに通知することもできます。被験者には複数の観察者が存在できますが、観察者の順序は重要ではないことに注意することが重要です。トピックは「オブザーバブル」とも呼ばれます
2. トピックのステータスが変化したときに通知できるように、すべてのオブザーバーはオブザーバー インターフェイスを実装する必要があります
オブザーバー パターンは広く使用されている非常に重要なデザイン パターンであり、オブジェクト間の結合を軽減するのに役立ちます。オブジェクトが高度なコラボレーションを維持できるようになります。このパターンの疎結合特性は以下に反映されています。
1. オブザーバーに関するすべて。サブジェクトはオブザーバー インターフェイスを実装していることだけを知り、それ以外は何も知りません
2. いつでもサブジェクトのオブザーバーを動的に追加でき、削除されました
3. 新しいタイプのオブザーバーが出現した場合、テーマのコードを変更する必要はありません
4. テーマとオブザーバーのどちらかを変更しても、他方には影響しません
例
コメント~
#observer pattern class subject(): def __init__(self,dat): self.listobj = list() #主题中的列表变量用来存储观察者 self.dat = dat #主题中的数据变化时,需要通知观察者 def registerObject(self,obj): self.listobj.append(obj) #实现订阅主题的函数 def removeObject(self,obj): pass def notifyObservers(self):#通知各个观察者数据已经发生变化,观察者相应需要更新自己的数据 for i in range(len(self.listobj)): self.listobj[i].update() def setdat(self,new_dat):#设置数据 if self.dat != new_dat: self.dat = new_dat self.notifyObservers() class observer():#观察者 def __init__(self,sub): #观察者初始化时,需要订阅主题 self.sub = sub self.sub.registerObject(self) self.number = self.sub.dat def update(self):#观察者更新 self.number = self.sub.dat def display(self): print self.number if __name__ =="__main__": su = subject(10) ob1 = observer(su) ob1.display() ob2 = observer(su) ob2.display() su.setdat(11) ob1.display() ob2.display()
Python プログラムでのオブザーバー パターン構造の記述に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。
