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

这篇具有很好参考价值的文章主要介绍了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.单一职责原则

概念:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。文章来源地址https://www.toymoban.com/news/detail-604017.html

6.设计模式分类

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

到了这里,关于2.python设计模式【面向对象设计的SOLID原则 基础概念】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 面向对象设计的六大原则(SOLID原则)-——开闭原则

    开闭原则(Open-Closed Principle, OCP)是面向对象设计的五大SOLID原则之一。这个原则主张“软件实体(类、模块、函数等)应该对扩展开放,对修改关闭”。也就是说,软件的设计应该允许在不修改原有代码的情况下增加新的功能。这样的设计有助于降低代码的复杂性和维护成本

    2024年03月12日
    浏览(8)
  • C++设计模式_02_面向对象设计原则

    变化是复用的天敌!面向对象设计或者说使用了抽象原则的面向对象设计最大的优势在于#

    2024年02月11日
    浏览(10)
  • 【设计模式】02-SOLID 设计原则

    面向对象编程(OOP)是一种广泛应用的编程范式,它鼓励开发者通过对象来模拟现实世界。为了提高面向对象设计(OOD)的质量和可维护性,Robert C. Martin提出了 SOLID 原则,这五个原则构成了编写良好、可扩展和可维护OOP代码的基础。 SOLID是一个缩写词,代表以下设计原则(

    2024年01月23日
    浏览(10)
  • 设计类的时候面向对象遵循的原则 SOLID

    S(single responsibility):单一职责 O(open closed):对扩展开放,对修改关闭(可以扩展,尽量不要修改) L(liskov substitution):里氏替换    任何时候都可以用子类替代父类(父类必须有所有子类的共性) I(interface segregation):接口分离  如果一个类包含了过多的接口方法,

    2024年02月04日
    浏览(12)
  • 一网打尽java注解-克隆-面向对象设计原则-设计模式

    一网打尽java注解-克隆-面向对象设计原则-设计模式

    注解 :也叫标注,用于包、类、变量、方法、参数上。可以通过反射获取标注。可以在编译期间使用,也可以被编译到字节码文件中,运行时生效。 内置注解 :Java语言已经定义好的注解。 @Overread :用于方法重写。 @Deprecated :标记过时方法。 @SuppressWarnings :指示编译器去

    2024年02月11日
    浏览(7)
  • 【设计模式之美】SOLID 原则之二:开闭原则方法论、开闭原则如何取舍

    具体的说,添加一个新的功能应该是,在已有代码基础上扩展代码(新增模块、类、方法等),而非修改已有代码(修改模块、类、方法等)。 举例说明: 现在,如果我们需要添加一个功能,当每秒钟接口超时请求个数,超过某个预先设置的最大阈值时,我们也要触发告警

    2024年01月25日
    浏览(10)
  • javascript设计模式-面向对象基础

    在JS这种弱类型的语言中,类型不匹配错误很难跟踪。可以使用接口来进行类型检查。如果强制使用,又会弱化语言的灵活性。因为有额外的代码调用,所以又会降低性能。解决方法就是在开发时进行类型检查,在开始完成后删除此部分代码。 但JS中的接口实现方式是模拟的

    2024年01月18日
    浏览(9)
  • 设计模式学习笔记 - 面向对象 - 1.面向对象到底讨论的是什么

    面向对象编程( OOP )的全称是 Object Oriented Programming 。 面向对象编程语言( OOPL )的全称是 Object Oriented Programming Language 。 面向对象编程中有两个非常重要的概念,就是类( Class )和对象( Object )。面向对象编程这个概念第一次使用是在 SmallTalk 这种编程语言中,它也被认

    2024年02月22日
    浏览(13)
  • 设计模式学习笔记 - 面向对象 - 3.面向对象比面向过程有哪些优势?面向过程真的过时了吗?

    在过往的工作中,我发现很多人搞不清面向对象和面向过程的区别,总认为使用面向对象编程语言来开发,就是在面向面向对象编程了。而实际上,他们只是在用面向对象编程语言,编写面向过程风格的代码而已,并没有发挥面向对象编程的优势。这就相当于手握一把屠龙刀

    2024年02月22日
    浏览(10)
  • C++中的面向对象设计模式实践

    面向对象程序设计(Object-Oriented Programming,简称OOP)是一种将程序设计问题分解为对象的思维方式。它通过定义对象和对象之间的关系,将问题模型化并转化为代码实现。在面向对象设计模式中,设计模式是一种被普遍接受的解决问题的方法论。 C++作为一种多范式编程语言,

    2024年01月17日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包