三个层次讲封装:
1.数据层:将一些基础数据类型包装成一种自定义数据类型
2.行为层:开放必要的功能,隐藏不必要的过程,细节
3.设计层:分而治之,变则改之,高内聚,低耦合
class Wife:
def __init__(self,name,age):
self.name = name #类就是数据层次的封装
self.age = age
@property #创建property对象,只负责拦截读取操作
def age(self):
return self.__age
@age.setter #只负责拦截写入操作
def age(self,value):
if 20<=age<=31:
self.__age = value
else:
raise ValueError("年龄不在要求内")
@property
def name(self):#只读取
return self.__name
w01 = Wife("天霸",20)
w02 = Wife("天兵",10)#报错,不符合20<=age<=31 ==>这就是行为层的封装,隐藏不必要的过程细节。让用户只能使用开发的功能
print(w01.age) ==>20 #该处调用age读取方法
w01.age = 30 #该处调用age的写入方法
设计角度:
1.分而治之:--将一个大的需求分解为许多类,每个类处理一个独立的功能
--拆分好处:便于分工,便于复用,可扩展性强
2.变则疏之:--变化的地方独立封装,避免影响其他类
3.高内聚:--类中各个方法都在完成一项任务(单一职责的类)
4.低耦合:--类与类的关联性与依赖度要低(每个类独立),让一个类的改变,尽可能小的影响其他类
原文:https://www.cnblogs.com/aid20-python/p/14144497.html