ホームページ  >  記事  >  バックエンド開発  >  Python 3 層アーキテクチャの詳細な図解説明

Python 3 層アーキテクチャの詳細な図解説明

高洛峰
高洛峰オリジナル
2017-03-12 10:44:484050ブラウズ

この記事では画像と文章で詳しく解説していますpythonThree-tierarchitecture

3層アーキテクチャ(3層アーキテクチャ) 通常の意味で、3層アーキテクチャはビジネス全体を分割することですアプリケーション:
パフォーマンス層 (プレゼンテーション層)、ビジネス ロジック層 (ビジネス ロジック層)、データ アクセス層 (データ アクセス層)。


レベルを差別化する目的は、「高い凝集性と低い結合性」のアイデアです。
高結合性と低結合性は、ソフトウェア工学における概念であり、主にオブジェクト指向の設計であり、クラスの結合度が高いかどうかによって決まります。カップリングが低いです。 凝集度は、モジュール内の要素が互いにどの程度密接に結合されているかを示します。

いわゆる高い凝集性とは、ソフトウェア モジュールが関連性の高いコードで構成され、1 つのタスクのみを担当することを意味し、これはしばしば単一責任原則と呼ばれます。
カップリング: ソフトウェア構造内の異なるモジュール間の相互接続の程度の尺度 (カップリングはブロック間接続とも呼ばれます。これは、ソフトウェア システム構造内のモジュール間の相互接続の近さの尺度を指します。
) モジュール間 接続が近いほど、結合は強くなり、モジュールの独立性は悪くなります。モジュール間の結合のレベルは、モジュール間の
インターフェースの複雑さ、呼び出し方法、および転送される情報によって異なります)。 低結合については、大まかに次のように理解します:
完全なシステム、モジュール、モジュールは可能な限り独立して存在する必要があります。
言い換えれば、各モジュールが特定のサブ機能をできるだけ独立して完了できるようにします。
モジュール間のインターフェースは可能な限り少なく、シンプルである必要があります。
2 つのモジュール間の関係が比較的複雑な場合は、最初にさらにモジュールを分割することを検討するのが最善です。
修正や組み合わせに便利です。
以下に示す 3 層アーキテクチャ:


这篇文章图文详解python三层架构

1. プレゼンテーション層 (UI): 平たく言えば、ユーザーに表示されるインターフェイス、つまり、ユーザーがシステムを使用するときに行うこと 何が得られるかを確認してください。

2. ビジネス ロジック層 (BLL): 特定の問題に対する操作は、データ層およびデータのビジネス ロジック処理に対する操作とも言えます。

3. データ アクセス層 (DAL): この層によって実行されるトランザクションは、データの追加、削除、変更、検索などのためにデータベースを直接操作します。



例:

#coding:utf8

from utility.sql_helper import MySqlHelper

class Admin(object):
    def init(self):
        self.helper = MySqlHelper()
        
    def Get_One(self,id):
        sql = "select * from userinfo where id = %s"
        params = (id,)
        return self.helper.Get_One(sql, params)
    
    def CheckValidate(self,username,password):
        sql = "select * from userinfo where name=%s and password=%s"
        params = (username,password,)
        return self.helper.Get_One(sql, params)
#coding:utf8
import MySQLdb
import conf


class MySqlHelper(object):
    def init(self):
        self.conn_dict = conf.conn_dict
    def Get_Dict(self,sql,params):
        conn = MySQLdb.connect(**self.conn_dict)
        cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) 
        
        reCount = cur.execute(sql,params)
        data = cur.fetchall()   

        cur.close()
        conn.close()
        return data
       
    def Get_One(self,sql,params):
        conn = MySQLdb.connect(**self.conn_dict)
        cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) 
        
        reCount = cur.execute(sql,params)
        data = cur.fetchone()  

        cur.close()
        conn.close()
        return data
rreerree

以上がPython 3 層アーキテクチャの詳細な図解説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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