随笔分类 -  设计模式

摘要:1、什么情况下要重构? 当你有空的时候就可以对你的代码进行重构。而不是等到代码烂到一定程度的情况下,才开始动手去重构代码。(从心理学的角度看,当代码烂到一定的程度,人们会出现一种“破窗理论”,破罐子破摔,由于技术的更新,人员的流动,于是不断有人往项目里面对切烂代码,最终的结果就是不得不去重写项目)。 阅读全文
posted @ 2020-06-04 20:15 邂逅那青春-VING 阅读(618) 评论(0) 推荐(0)
摘要:1、里氏替换原则和继承有什么区别? 里氏替换原则,是指导设计子类用的原则,而继承是面向对象编程的四大特性之一,是一种代码实现的思路。 里氏替换原则,更加强调子类替换父类之后,不能改变原来的逻辑和原来的正确性 2、有什么情况是违背了里氏替换原则?下面罗列三种情况 2.1 子类违背父类生命要是实现的功能 阅读全文
posted @ 2020-05-18 20:03 邂逅那青春-VING 阅读(189) 评论(0) 推荐(0)
摘要:1、如何判断某个类是否足够职责单一? 下面是几个小技巧 1.1 类中的代码是否太多了,建议200行以内 1.2 类中的方法,属性,是否太多 1.3 给类起名字的时候,是否想不出叫什么名称?只能用笼统的词语来表达的时候,就要注意了 1.4 类中大量的方法都是集中操作类中的某几个属性 2、类中的职责是否 阅读全文
posted @ 2020-05-15 19:41 邂逅那青春-VING 阅读(250) 评论(0) 推荐(0)
摘要:1、继承的缺点是什么?为什么不推荐使用继承? 如果滥用继承,会导致继承层次过深,复杂的继承关系。导致维护性降低。(如果继承关系层次少,不fu) (继承是面向对象的四大特性之一,用来表示类之间的 is a 关系,可以解决代码复用的问 题。虽然继承有诸多作用,但继承层次过深、过复杂,也会影响到代码的可维 阅读全文
posted @ 2020-05-12 19:53 邂逅那青春-VING 阅读(653) 评论(0) 推荐(0)
摘要:1、抽象类 1.1 不能被实例化 1.2 能定义属性 1.3 能定义实现方法 1.4 能定义抽象方法 2、接口 2.1 不能被实例化 2.2 不能定义属性 2.3 不能定义实现方法 2.4 能定义抽象方法 3、抽象类和接口存在的意义 抽象类是对成员变量和方法的抽象,是一种is a关系,是为了解决代码 阅读全文
posted @ 2020-05-11 20:11 邂逅那青春-VING 阅读(128) 评论(0) 推荐(0)
摘要:1、面向过程编程和面向对象编程的区别? 1.1 面向过程编程,将某一些简单的业务逻辑,顺序性地翻译成程序,组织形式为线性的,面条式的编程风格。而面向对象,则是 将业务逻辑先翻译成类 ,在组织这些类去完成业务逻辑,组织形式为类。两者在思考的思维模式上是很大的区别。(很大习惯了CRUD的程序员,很容易使 阅读全文
posted @ 2020-05-10 00:52 邂逅那青春-VING 阅读(420) 评论(0) 推荐(0)
摘要:一、 如何评价代码质量的高低?(强烈推荐,要记住。毕竟在code review 同事的代码时候,可以用上额。) 七个维度 1. 可维护性 2. 可读性 3. 可扩展性 4. 灵活性 5. 可复用性 6. 简洁性 7. 可测试性 想象下,当着几十号人的面前,对你同事的代码说出专业名词的场景。台下一片 阅读全文
posted @ 2020-05-06 20:02 邂逅那青春-VING 阅读(269) 评论(0) 推荐(0)
摘要:1、背景: 在项目中遇到某实例中的某个属性被声明为private ,而且实体类中,不提供该属性的get方法,导致无法通过get获取该属性值。这个时候,我们可以利用DirectFieldAccessor这个类进行获取我们想要的属性值。 2、作用 它的功能是直接操作Bean的属性值,代替使用get/se 阅读全文
posted @ 2020-01-16 10:12 邂逅那青春-VING 阅读(550) 评论(0) 推荐(1)
摘要:注意:委派模式不在23种设计模式中,但是在spring 中大量使用到,非常猖狂地用到这个模式。所以我们不得不去撩一下这个模式。 委派模式=静态代理+策略模式 他们组合起来的一种特殊设计模式 例如:1、boss >项目经理 》员工A、员工B、员工C 2、dispatcherSelvert就是用到这个委 阅读全文
posted @ 2019-05-10 01:48 邂逅那青春-VING 阅读(150) 评论(0) 推荐(0)