三层架构(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()