https://zhuanlan.zhihu.com/p/149463934
解决类与类之间的冗余问题:
多态与多态性
多态:一种事物的多种状态
1.水:固定水,液态水,水蒸气
2.动物:人, 狗, 猪
-
继承: 满足什么是什么的关系
继承:解决冗余问题
多态类中继承:不是让子类遗传父类的属性和方法, 是用来给子类定制标准的
多态带来的特性:在不用考虑对象数据类型的情况下,直接调用对象的方法 -
组合: 满足什么有什么的关系:一个对象拥有一个属性,该属性值是另外一个对象
===================================
python约定熟成的:也就是鸭子类型
Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’
python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象
也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。
*** 接口标准
接口设计遵循restful设计标准
约定一下接口设计约束
1、 urI约束:
a) URI逻辑规范
i) 避免层级过深的URI,一般小于3层;
ii) 组合资源的访问必须通过父实体的id导航访问;
iii) 服务型资源设计合理的URI;
b) URI写法规范
i) 不用大写;
ii) 用中杠-不用下杠_;
iii) 参数列表要encode;
iv) URI中的名词表示资源集合,使用复数形式,便于识别沟通;
2、 request设计约束
a) 通过标准HTTP方法对资源CRUD,禁用一种访问方式进行多种形式的资源操作:
i) GET:查询
1、 查询可能附带的约束:过滤条件,排序,投影,分页等
2、 复杂查询:经常使用的、复杂的查询标签化,降低维护成本。
ii) POST:创建单个资源(注:POST一般向“资源集合”型uri发起,如果是组合资源一般向父级实体发起)
iii) PUT:更新单个资源(全量),客户端提供完整的更新后的资源(注:一般向“单个资源”型uri发起,如果是组合资源一般向父级实体发起)
iv) PATCH 更新单个资源(部分),客户端提供要更新的那些字段(注:一般向“单个资源”型uri发起,如果是组合资源一般向父级实体发起)
v) DELETE:删除
b) 数据格式约束
i) 数据提交的格式:Content-Type: application/json
ii) 资源提交的格式(暂时不做特定限制,可以是xml、pdf、excel等):Content-Type: application/pdf;q=1.0
iii)
3、 response设计约束
a) 数据不做多余的包装
b) 各HTTP方法成功处理后的数据格式:
request方式 response 格式
GET 单个对象、集合
POST 新增成功的对象
PUT/PATCH 更新成功的对象
DELETE 空
c) 数据格式约定:
i) 返回json格式
ii) 时间格式为长整形
iii) 不传null字段,非必要不传空字符串
d) 错误处理:
i) 发生错误不使用2xx状态码;
ii) 正确设置状态码,非必要不要定义;
iii) 提供错误代码,保留错误的描述文本