2.python设计模式【面向对象设计的SOLID原则 基础概念】

1.可放封闭原则

概念:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应该尽量在不修改原有代码的情况下进行扩展

2.里式替换原则

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

3.依赖倒置原则

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

4.接口隔离原则

概念:使用多个专门的接口,而不使用当一的总接口,即客户端不依赖那些他不需要的接口。
举个例子:

from abc import ABCMeta, abstractmethod

class Animal(metaclass=ABCMeta):
    @abstractmethod
    def walk(self):
        pass
        
    @abstractmethod
    def swim(self):
        pass
        
    @abstractmethod
    def fly(self):
        pass
        
class  Tiger(LandAnimal):
    def walk(self):
        print("老虎走路")
    def swim(self):
        pass
    def fly(self):
        pass

比如创建一个动物类,它同时拥有走路,游泳,飞三种功能,那么老虎类继承了动物类,则其中就会实现一些它本不属于的方法。因此可以将动物类分成地上走的,水里游的,天空飞的三个类,然后分别继承它。

from abc import ABCMeta, abstractmethod

class LandAnimal(metaclass=ABCMeta):
    @abstractmethod
    def walk(self):
        pass
class WaterAnimal(metaclass=ABCMeta):
    @abstractmethod
    def swim(self):
        pass
class SkyAnimal(metaclass=ABCMeta):
    @abstractmethod
    def fly(self):
        pass

class  Tiger(LandAnimal):
    def walk(self):
        print("老虎走路")

class Frog(LandAnimal,WaterAnimal):
    def walk(self):
        print("青蛙在跳")

    def swim(self):
        print("青蛙在游泳")

比如青蛙是两栖动物,则它就同时拥有走路和游泳两个功能,因此可以多继承。

5.单一职责原则

概念:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。

6.设计模式分类

  • 创建型模式(5):
    • 工厂方法模式
    • 抽象工厂模式
    • 创建者模式
    • 原型模式
    • 单例模式
  • 结构型模式(7):
    • 适配器模式
    • 桥接模式
    • 组合模式
    • 装饰模式
    • 外观模式
    • 享元模式
    • 代理模式
  • 行为型模式(11):
    • 解释器模式
    • 责任链模式
    • 命令模式
    • 迭代器模式
    • 中介者模式
    • 备忘录模式
    • 观察者模式
    • 状态模式
    • 策略模式
    • 访问者模式
    • 模板方法模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值