Python面向对象设计原则

面向对象设计SOLID原则

开放封闭原则

一个软件实体(如:类、模块、函数)应该对扩展开放,对修改关闭。

里氏替换原则

所有引用父类的地方必须能透明地使用其子类的对象

依赖倒置原则

高层模块不应当依赖于低层模块,二者都应该依赖其抽象;抽象不应该以来细节,细节应该依赖抽象。
换言之,要针对接口编程,而不是针对实现编程。

接口隔离原则

使用多个专门的接口,而不使用单一的总接口,即客户端(调用底层模块的高层模块)不应该依赖那些它不需要的接口。

单一职责原则

不要存在多于一个导致类变更的原因(一个类只干一件事情)
通俗的说,即一个类只负责一个职责。

设计模式:为了隐藏底层逻辑,从而方便高层的调用

简单工厂模式

把写类的人和创建对象的人,当作是两个人
工厂类:生产对象的,例如:生产支付宝支付、微信支付
把信息隐藏
不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类负责创建产品类的实例

  • 角色
    • 工厂角色(Creator)
    • 抽象产品角色(Product)— 使得产品有同样的****对外表现
    • 具体产品角色(Concrete Product)
      简单工厂模式举例
  • 优点
    • 隐藏了对象创建的实现细节
    • 客户端不需要修改代码
  • 缺点
    • 违反了单一职责原则,将创建逻辑集中到一个工厂类内
    • 当添加新产品时,需要修改工厂类代码,违反了开闭原则

工厂方法模式

  • 创建多个工厂
  • 不会违反开闭原则
  • 内容
    • 创建一个用于创建对象的接口(工厂接口),让子类决定实例化哪一个产品类
  • 角色
    • 抽象工厂角色
    • 具体工厂角色
    • 抽象产品角色
    • 具体产品角色
      -工厂类具体实例
  • 优点
    • 每个具体产品都对应一个具体的工厂类,不需要修改工厂类
    • 隐藏了对象创建的实现细节
  • 缺点
    • 每增加一个具体的产品类,就必须增加一个对应的具体工厂类(产生很多的工厂类)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值