设计模式
sunbing_sk
这个作者很懒,什么都没留下…
展开
-
10、少用继承多用组合原则
为什么不推荐使用继承 继承是面向对象的四大特性之一,用来表示类之间的is-a关系,可以解决代码复用的问题。虽然继承有诸多作用,但继承层次过深,过复杂,也会影响代码的可维护性。在这种情况下,我们应该尽量少用,甚至不用继承 组合相比继承有哪些优势 继承主要有三个作用:表示is-a关系,支持多态特性,代码复用。而这三个作用都可以通过组合、接口、委托三个技术手段来达成。除此之外,李勇组合还能解决层次过深、过复杂的继承关系影响代码可维护性的问题。 如何判断该用组合还是继承 尽管我们鼓励多用组合少用继承,但组合也并不是原创 2021-06-11 18:47:45 · 201 阅读 · 0 评论 -
9、基于接口而非实现编程
这个原则非常重要,是一种非常有效的提高代码质量的手段,在平时的开发中经常被用到 基于接口而非实现编程这条原则中的接口,可以理解为编程语言中的接口或者抽象类 接口定义 接口就是一组协议或者约定,是功能提供者提供给使用者的一个功能列表 设计初衷 讲接口和实现相分离,封装不稳定的实现,暴露稳定的接口。上游系统面向接口而非实现编程,不依赖不稳定的实现细节,这样当实现发生变化的时候,上游系统的代码基本上不需要做改动,一次来降低代码间的耦合性,提高代码的扩展性 遵从基于接口而非实现编程原则 函数的命名不能暴露任何实现原创 2021-06-09 20:54:49 · 69 阅读 · 0 评论 -
8、接口&抽象类
抽象的特性 抽象类不允许实例化,只能被继承 抽象类可以包含属性和方法 子类继承抽象类,必须实现抽象类中的所有抽象方法,抽象方法不能包含代码实现 接口的特性 接口不包含属性 接口只能声明方法,方法不能包含实现代码 类实现接口的时候,必须实现接口中声明的所有方法 抽象类更多的是为了代码复用,而接口就更侧重于解耦。 接口实现了约定和实现相分离,可以降低代码间的耦合性,提高代码的可扩展性。 接口是一个比抽象类应用更加广泛、更加重要的知识点 如何决定改用抽象类还是接口 实际上,判断的标准很简单。如果我们要表示原创 2021-06-07 20:49:25 · 68 阅读 · 0 评论 -
7、三种违反面向对象编程风格的典型代码设计
滥用 getter、setter 方法 设计实现类的时候、除非真的需要,否则尽量不要给属性定义setter方法。除此紫外,尽管getter方法相对setter方法要安全一些,但是如果返回的是集合容器,那也要防范几核内部数据被修改的风险 Constants类、Utils类的设计问题 对于这两种类的设计,我们尽量能做到职责单一,定义一些细化的小类,比如RedisConstants、FileUtils,而不是定一个大而全的Constants类、Utils类。除此之外,如果能将这些类中的属性和方法,划分归并到其他业原创 2021-06-07 17:42:22 · 141 阅读 · 0 评论 -
6、面向过程与面向对象
1、什么是面向过程编程、什么是面向过程编程语言 实际上,面向过程编程和面向过程编程语言并没有严格的官方定义。理解这两个概念最好的方式是跟面向对象编程和面向对象编程语言进行对比。相较于面向对象编程以类为组织代码的基本单元,面向过程编程则是以过程(或方法)作为组织代码的基本单元。它最主要的特点就是数据和方法相分离。相较于面向对象编程语言,面向过程编程语言最大的特点就是不支持丰富的面向对象编程特性,比如继承、多态、封装。 2、面向对象编程相比面向过程编程有哪些优势? 对于大规模复杂程序的开发,程序的处理流程并非原创 2021-06-04 18:49:24 · 94 阅读 · 0 评论 -
5、面向对象四大特性
封装 封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式来访问内部信息或者数据。他需要编程语言提供权限访问控制语法来支持,例如java中的private、protected、public 关键词。封装特性存在的意义,一方面是保护数据不被随意修改,提高代码的可维护性;另一方面是仅暴露有限的必要接口,提高类的易用性 抽象 抽象存在的意义,一方面是提高代码的可扩展性、维护性,修改实现不需要改变定义,减少代码的改动范围;另一方面,他也是处理复杂系统的有效手段,能有效地过滤不.原创 2021-06-04 17:13:03 · 56 阅读 · 0 评论 -
4、面向对象
文章目录@[toc]1、什么是面向对象编程2、什么是面向对象编程语言3、 1、什么是面向对象编程 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现基石。 2、什么是面向对象编程语言 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便实现面向对象的四大特性,封装、继承、抽象、多态的编程语言 3、 ...原创 2021-06-02 20:32:05 · 38 阅读 · 0 评论 -
3、编写高质量代码
原创 2021-06-01 21:02:43 · 69 阅读 · 0 评论 -
2、什么是高质量代码
文章目录1、如何评价代码质量的高低2、最常用的评价标准哪几个3、如何才能写出高质量的代码 1、如何评价代码质量的高低 代码质量的高低是一个综合各种因素得到的结论,我们并不能通过单一的维度去评价一段代码的好坏 2、最常用的评价标准哪几个 **1. 可维护性 可读性 可扩展性** 灵活性 简洁性 可复用性 可测试性 加粗的是提到最多的,最重要的三个评价标准 3、如何才能写出高质量的代码 想要写出高质量的代码,我们就需要掌握一些更加细化、更加能落地的变成方法论 面向对象设计思想 设计原则 设计模式 编码规原创 2021-06-01 20:57:28 · 96 阅读 · 0 评论 -
1、为什么学习设计模式相关知识
文章目录1、应对面试中的设计模式相关问题2、告别写被人吐槽的烂代码3、提高复杂代码的设计和开发能力4、让读源码、学习框架事半功倍5、为你的职场发展做铺垫 1、应对面试中的设计模式相关问题 2、告别写被人吐槽的烂代码 3、提高复杂代码的设计和开发能力 4、让读源码、学习框架事半功倍 5、为你的职场发展做铺垫 ...原创 2021-06-01 20:41:14 · 36 阅读 · 0 评论