首页 > 其他分享 >重学面向对象,体会设计模式

重学面向对象,体会设计模式

时间:2023-10-29 22:45:10浏览次数:33  
标签:体会 开车 继承 可以 这节 司机 面向对象 臭长 设计模式

先上图(学长今晚讲得好激情,就像哈佛大学cs50的老师~~~~)

图一让你明白,在Java帝国,你有多么渺小

 

回忆一下学长讲课的思路~

Driver这个类里面封装了很多各种各样的方法,包括接学生回家,包括开车的时速,里面包括了,司机本身的一个职责,以及车的一个功能,但问一个问题,如果今天司机的大巴车坏了,他想用中巴车载学生回家,那么是不是要在这个臭长的玩意儿里面改改改,又因为它太臭长了,所以比如不止你司机可以开车,我小学生也可以开车,开碰碰车,你司机开中巴车,大家都可以开车,所以开车是大家都可以实现的一个共有的,抽象的属性,那是不是可以提取出来呢,那么开什么车,车的时速是多少,也无定论,那么是不是又可以拿出来讨论一下呢?我们发现哎,把这些可以很灵活的东西,都放在一个很死板,很臭长的牢笼里,很限制他们的发挥,于是,我们试图将它们挨个抽取出来放着

好的都放好了,但是东西多起来,就显得还是有点儿杂乱无章,这时候,我们就要想办法让他们产生一种联系,这时候就涉及到这节课的一个核心,继承,这节课的继承,不是学校上的,简简单单的子类继承父类,调用父类,这个大家都会,没必要拿到这节课说,所以,此继承非彼继承,当然也和父与子有一定关系,试着想一个逻辑,是不是有了工人,你才会去想,是什么工人,接下来便有了司机,有了司机,你又会想是好司机还是坏司机,司机是谁定下来之后,你又想,司机开的是兰博基尼还是宝马这时候,这个“继承”就会实现一条业务链,整条业务链通过继承串起来

好吧我搞不了链子,那就想象一条链子把它们依次串起来,好司机,它就可以串好的DriverWork,不好的司机,我也可以再写一个不好的DriverWork上去,接着,有个CarDriver我就可以用它来选择我喜欢的车车~~~,这句话说的就是这个按照业务链条这个逻辑来继承的一个好处,就是把一个大东西细分成一个个接口,实现类,按照生活经验,业务逻辑串上去

 

做作业了~~先到这吧

标签:体会,开车,继承,可以,这节,司机,面向对象,臭长,设计模式
From: https://www.cnblogs.com/cjtaaa/p/17796698.html

相关文章

  • python面向对象-学习笔记(六、方法相关的补充)
    私有化方法私有方法classPerson:__age=18#私有方法def__run(self):print("run")#def_Person__run(self):#print("Personrun")p=Person()#p.__run()#p._Person__run()print(Person.__dict__)内置特殊方法......
  • 设计模式—创建型模式之原型模式
    设计模式—创建型模式之原型模式原型模式(PrototypePattern)用于创建重复的对象,同时又能保证性能。本体给外部提供一个克隆体进行使用。比如我们做一个SjdwzMybatis,用来操作数据库,从数据库里面查出很多记录,其中很多记录改变很少。每次查数据库,把所有数据都封装一个对象,然后返回......
  • 如何将设计模式责任链模式运用到工作当中
    (文章目录)......
  • python面向对象-学习笔记(三、类方法、实例方法、静态方法)
    方法相关方法的概念描述一个目标的行为动作和函数相似封装了一系列行为动作。比如一个人怎么吃,怎么喝,怎么玩...都可以被调用最主要区别:调用方式方法的划分实例方法:默认第一个参数是一个实例类方法:默认第一个参数是类静态方法:没有默认参数注意划分的依据:方法的第一......
  • python面向对象-学习笔记(四、类相关的补充)
    元类创建类对象的类对象怎么产生的?由类创建出来的。类是不是对象?是所以类对象是不是由另外一个类创建出来的?是,元类创建类对象的另外一种方式#创建类对象的另外一种方式defrun(self):print("run",self)dog=type("Dog",(),{"count":1,"run":run})prin......
  • python面向对象-学习笔记(五、属性相关的补充)
    私有化属性注意python并没有真正支持私有化,但是可以使用下划线完成伪私有的效果类属性(方法)和实例属性(方法)遵循相同的规则公有属性a在类的内部可以访问在子类的内部可以访问在模块其他地方类的属性可以访问子类的属性可以访问类的实例的属性可以访问子类的......
  • python面向对象-学习笔记(二、类&对象的属性)
    如何定义一个类?创建类的格式class类名: pass怎么通过类,创建出一个对象?创建类,并实例化对象classMoney:passone=Money()#打印类print(Money)#打印类的实例print(one)类的别名和打印类的名称classMoney:pass#打印类的名称print(Money.__na......
  • Proxy Facade 设计模式运行时的工作原理介绍
    ProxyFacade设计模式是一个强大的工具,它可以帮助我们创建一个简单的代理外观类,以便根据方法和属性的配置来访问系统的各种功能。在这篇文章中,我们将深入探讨ProxyFacade模式的运行时工作原理,并提供一些实际示例来帮助您更好地理解。什么是ProxyFacade设计模式?ProxyFaca......
  • Commands and Queries 设计模式详解
    在Angular应用开发领域,CommandsandQueries设计模式是一个关键的概念,它有助于有效地管理应用程序的状态和与后端的交互。本文将深入探讨这一设计模式的核心要点,并通过实际示例来加以说明。基本概念命令(Commands)命令代表了一项能够改变系统状态的操作,通常通过向后端发起RES......
  • 面向对象(C++)
    -1待填坑:运算符重载,模板和泛型编程。文件输入输出跨文件使用全局变量应该先用extern声明如果在全局变量和全局函数前面加上static关键字,就无法在其他文件中使用这些变量和函数了。0、动态内存分配分配内存:int*p=newint(4);//注意是一个变量初值为4int*list=newint[......