设计模式在Python之三层架构

三层架构(3-tier Architecture )通常意义上的三层架构就是将整个业务应用划分为:  表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了 “高内聚,低耦合”的思想。

1.表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 
2.业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 
3.数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增、删、改、查。

#!/usr/bin/env python3

class Data():

    products = {
        'milk': {'price': 1.50, 'quantity': 10},
        'eggs': {'price': 0.20, 'quantity': 100},
        'cheese': {'price': 2.00, 'quantity': 10}
    }

class BusinessLogic():

    def __init__(self):
        self.data = Data()

    def product_list(self):
        return self.data.products.keys()

    def product_information(self, product):
        return self.data.products.get(product, None)

class Ui():

    def __init__(self):
        self.business_logic = BusinessLogic()

    def get_product_list(self):
        print("Product List:")
        for product in self.business_logic.product_list():
            print(product)
        print("")

    def get_product_information(self, product):
        product_info = self.business_logic.product_information(product)
        if product_info:
            print("Product Information:")
            print("Name: {0}, Price: {1:.2f}, Quantity: {2:d}".format(
                product.title(), product_info.get('price', 0),
                product_info.get('quantity', 0)))
        else:
            print('That product "{0}" does not exist in the records'.format(
                product))


def main():
    ui = Ui()
    ui.get_product_list()
    ui.get_product_information('cheese')
    ui.get_product_information('eggs')
    ui.get_product_information('milk')
    ui.get_product_information('arepas')

if __name__ == "__main__":
    main()


你可能感兴趣的:(设计模式在Python之三层架构)