设计类的时候面向对象遵循的原则 SOLID

这篇具有很好参考价值的文章主要介绍了设计类的时候面向对象遵循的原则 SOLID。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

S(single responsibility):单一职责

O(open closed):对扩展开放,对修改关闭(可以扩展,尽量不要修改)

L(liskov substitution):里氏替换    任何时候都可以用子类替代父类(父类必须有所有子类的共性)

I(interface segregation):接口分离  如果一个类包含了过多的接口方法,而这些方法在调用中并不是“不可分割”的 就应该把他们进行分离

D(dependency inversion):依赖倒置  高层模块不应该直接依赖底层模块,而应该依赖抽象类或者接口(比如电脑类不能依赖某一个具体鼠标类,而应该是鼠标抽象类)

一个体现类的三大性质(封装,继承,多态)的小案例:文章来源地址https://www.toymoban.com/news/detail-758594.html

class Animal():
    def __init__(self,name,age=18):
        self.name=name
        self.age=age
    def run(self):
        print(f'{self}正在跑')
    def eat(self):
        print(f'{self}正在吃')

class Dog(Animal):
    def work(self):
        print(f'{self}正在看家')
    def __str__(self):
        return f'年仅{self.age}岁的小狗{self.name}'

class Cat(Animal):
    def work(self):
        print(f'{self}正在捉老鼠')
    def __str__(self):
        return f'年仅{self.age}岁的小猫{self.name}'

class Person(Animal):
    def __init__(self,name,pets,age=18): #有默认值的参数放在后面
        super().__init__(name,age) #这里要写明继承父类的哪几个性质
        self.pets=pets
    def feed_pets(self):
        for pet in self.pets:
            pet.eat()
            pet.run()
    def make_pets_work(self):
        for pet in self.pets:
            pet.work()


cat=Cat('liubo',3)
dog=Dog('zhangyong',5)
p=Person('zhangsan',[cat,dog],10)
p.make_pets_work()
p.feed_pets()

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

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

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

相关文章

  • 设计类标书制作方法

    在当今竞争激烈的市场环境中,设计类标书制作显得尤为重要。它不仅是展示创意和实力的舞台,更是决定项目归属的关键环节。 1.明确设计要求与目标 在制作设计类标书前,务必深入了解招标方的需求、期望和目标。这包括对设计主题、风格、功能等方面的明确要求。只有

    2024年01月22日
    浏览(54)
  • 南京邮电大学程序设计类教辅平台c++第三章作业编程题答案

    南京邮电大学程序设计类教辅平台c++第三章作业编程题答案 1.5.1构建一个类,含有三个数据成员,分别表示立方体的三条边长;含有构造函数(默认边长为3,2,1)和一个用来计算立方体体积的成员函数Compute()。 main()函数如下,请复制使用 代码: 2.设计一个Car类,它的数

    2023年04月20日
    浏览(47)
  • 面向对象设计原则实验之“接口隔离原则”

    客户端不应该依赖那些它不需要的接口。 实验一 考虑一个安全系统。在这个系统中,有一些Door对象,可以被加锁和解锁,并且Door对象知道自己是开着还是关着。这个Door编码成一个接口,这样客户程序就可以使用那些符合Door接口的对象,而不需要依赖于Door的特定实现。 现

    2024年04月12日
    浏览(48)
  • 【设计模式】面向对象设计八大原则

    (1)依赖倒置原则(DIP) 高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象(稳定)。 抽象(稳定)不应该依赖于变化),实现细节应该依赖于抽象(稳定)。 (2)开放封闭原则(OCP) 对扩展开放,对更改封闭。 类模块应该是可扩展的,但是不可

    2024年02月10日
    浏览(40)
  • 面向对象的设计原则

    设计模式:对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计 三大特性:封装、继承、多态 接口:若干抽象方法的集合 作用:限制实现接口的类必须按照接口给定的

    2024年02月10日
    浏览(38)
  • 01_面向对象的设计原则

    参考资料: 视频 书籍 《设计模式:可复用面向对象软件的基础》 面对复杂问题如何解决? 分解:分而治之,大问题分解成小问题。 抽象:忽视非本质的细节,处理泛化和理想化的对象模型。 面向对象 从语言实现看,是代码和数据的封装 是一系列的公共接口 某种拥有责任

    2024年02月13日
    浏览(41)
  • 基于面向对象基础设计——里氏替换原则

    在Java中,支持抽象和多态的关键机制之一是继承。正是使用了继承,我们才可以创建实现父类中抽象方法的子类。那么,是什么规则在支配着这种特殊的继承用法呢?最佳的继承层次的特征又是什么呢?在什么情况下会使我们创建的类层次结构掉进不符合开闭原则的陷阱中呢

    2024年02月14日
    浏览(46)
  • 《设计模式的艺术》笔记 - 面向对象设计原则

    1、单一职责原则         一个类只负责单一功能领域中的相应职责。 2、开闭原则         一个软件实体应当对扩展开放,对修改关闭。即软件实体应当尽量在不修改原有代码的情况下进行扩展。 3、里氏代换原则         所有引用基类的地方必须能透明地使用其子类的对

    2024年01月21日
    浏览(57)
  • 软件开发:面向对象设计的七大原则!

    开闭原则、里氏代换原则、迪米特原则(最少知道原则)、单一职责原则、接口分隔原则、依赖倒置原则、组合/聚合复用原则。 开闭原则(The Open-Closed Principle ,OCP) 开闭原则:软件实体(模块,类,方法等)应该对扩展开放,对修改关闭。 概念理解 开闭原则是指在进行面

    2024年02月07日
    浏览(46)
  • C++设计模式_02_面向对象设计原则

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

    2024年02月11日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包