我发现很多要点老师没讲的,包括的不懂的一些名词,在这里一一写出来。
编程范式我觉得挺重要的,毕竟在别人看你代码的时候不会很乱,或者是摸不着头脑,找不到重点。
过程式编程:自顶而下:就是总体到细节的分解 ChatGPT: 自顶而下是一种编程方法,它强调从总体到细节的分解和逐步细化,先考虑问题的总体结构和功能,再逐步细化到具体实现的细节。这种方法通常涉及到多个层次的抽象,每个层次都负责解决特定的问题,同时将问题分解为更小的部分。
我理解的是自顶而下有点像顺序结构,但是我显然已经混淆了概念
顺序结构是包括在结构化编程中的,就是3大结构,顺序,选择,循环。
面向对象:以下是我向GPT提问的答案 封装、继承、多态和依赖注入是面向对象编程中的四个基本概念,它们是实现面向对象编程的重要手段。
- 封装(Encapsulation):将数据和相关的操作封装在一个单独的单元中,以防止外部访问和修改。封装使得对象具有更高的可靠性和安全性,并提高了代码的可复用性和可维护性。 (简明版:关联数据和算法)
- 继承(Inheritance):允许新的类从现有类派生,继承现有类的属性和方法,并添加新的属性和方法。继承使得代码的重用更加容易,同时也允许对现有类进行扩展和修改。 (简明版:无需重写的情况下进行功能扩充,但是功能要有关联,不然会增加代码的维护难度,或者变得难以理解和修改)
- 多态(Polymorphism):允许使用相同的接口来表示不同的对象类型,以增加代码的灵活性和可扩展性。多态使得代码可以更加通用,同时也允许在运行时选择合适的实现。 (简明版:不同的结构可以进行接口共享,进而达到函数复用)
- 依赖注入(Dependency Injection):通过注入对象来实现对象之间的依赖关系,而不是在对象内部创建其他对象。依赖注入可以减少代码的耦合,并增加代码的可测试性和可维护性。 (多态和依赖注入都在减少代码的耦合,代码耦合是一个贬义词,会让代码更复杂)
原则:
- 单一职责原则SRP:一个类只负责一个功能领域中的相应职责,即一个类只有一个引起它变化的原因。
- 开放封闭原则OCP:软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。也就是说,在不修改原有代码的情况下,可以通过增加新的代码来扩展功能。
- 里氏替换原则LSP:子类必须能够替换其基类并出现在基类能够出现的所有地方,而不会影响程序的正确性。也就是说,在使用基类的代码中,可以用子类来替换基类,而不会影响程序的正确性。
- 接口隔离原则ISP:客户端不应该依赖于它不需要的接口。也就是说,一个类对另外一个类的依赖应该建立在最小的接口上。
- 依赖倒置原则(DIP):高层模块不应该依赖于底层模块,它们应该依赖于抽象。也就是说,应该通过抽象接口来进行依赖关系的管理,而不是直接依赖具体实现。这样可以使程序更加灵活、可扩展和可维护,也可以实现代码的解耦。
总结:总体来说,SOLID原则可以帮助我们编写出易于维护、扩展和重用的代码,但是实现这些原则需要花费更多的时间和精力。在实践中,应该根据具体情况来权衡使用这些原则的好处和坏处,选择合适的方案来编写程序。
最后两点不做拓展了