- 博客(58)
- 收藏
- 关注
原创 一文让你学会灵活的开启Spring的组件扫描
日常开发中我们经常会使用到Spring提供的各种注解来创建Bena,但是使用注解来创建有一个前提,那就是需要先开启组件扫描。这样Spring才会扫描我们配置的这些类,找到特定的注解为我们创建实例。今天就让我们来深入了解一下,开启组件扫描的相关知识。本文将会通过xml和注解两种形式为大家介绍。环境准备按照三层结构,编写好了Controller、Service、Dao,添加上了对应的注解,并且为了展示创建实例的效果,在无参构造中添加了打印语句,方便查看bean实例是否创建。// Controller@
2021-03-03 09:22:24
590
原创 通过@Conditional注解简简单单实现按条件注入Bean
概述@Conditional注解是Spring4之后提供的一个注解,该注解可以作用在类和方法上。这个注解用于添加条件来控制Bean是否可以注册到Spring的IOC容器中。从@Conditional注解的源码中,我们可以发现该注解的value属性接收的值是一个Condition类型的数组。Condition接口就是控制Bean注入的条件。Condition接口中提供了一个matches方法,该方法用于编写业务逻辑控制bean的注入,当方法的返回值为true时,表示标注了该注解的Bean可以注入到
2021-02-24 13:38:31
477
2
原创 重学Spring框架系列之——设置Bean的加载时机
本文可能会涉及到一些bena的作用域相关的知识,如果对其不是特别了解的可以查看我上一篇文章。bean的作用域为singleton和prototype时,其对应的加载时机是不同的。通常情况下spring中bean为单例时,bean实例的创建是在加载配置文件或配置类时创建的,而bean为多实例时,bean实例的创建是在获取该实例时创建的。通过文字描述可能比较抽象下面通过代码来查看一下。注意:spring创建实例时默认调用的是无参构造,下面我们在无参构造中加上输出语句用于查看调用时机。public c
2021-02-17 10:32:11
545
2
原创 重学Spring框架系列之——设置Bean的作用域
Bean的作用域在Spring中,默认情况下创建的bean都是单实例对象,当然也可以通过实际的需求进行修改。我们可以将这种操作视为设置bean的作用域。实现的方式有配置文件和注解两种形式,然而不论是哪种方式它们都对应了四种作用域。这四种作用域分别为:singleton(默认值):表示创建的对象是单实例的。prototype:表示创建的对象是多实例的。request:表示一次请求生成一个实例。session:表示一次会话生成一个实例。注:在这四种作用域中,singleton和prototyp
2021-02-09 09:13:45
967
原创 重学Spring框架系列之——使用Spring创建自定义Bean的实例
本文将为大家讲解一下如何使用Spring创建自定义的类的实例,也就是将自定义的类交由Spring来管理。下面将会通过XML和注解两种形式来进行演示。环境准备为了方便,下面将采取Maven项目进行演示。pom.xml中添加Spring环境的spring-context和用于测试的junit坐标。<dependency> <groupId>org.springframework</groupId> <artifactId>spring-contex
2021-02-01 09:24:08
424
原创 重学Spring框架系列之——揭秘Spring两大核心之一的IOC容器
今天菜鸟和大家一起来探讨一下Spring两大核心之一的“IOC”。IOC是什么IOC是“Inversion of Control”的缩写,翻译过来就是“控制反转”。我们先不深究其在Spring中的含义,先从字面上进行分析。打个比方来说:结婚前你的工资完全由你来支配,想怎么花就怎么花。结婚后变了,你的钱要上交给你媳妇了,你想花的时候得申请。此时你对工资的控制转变了,由原来的你控制,变成了你媳妇控制。这就是“控制反转”,本来属于你控制的事情,交由别人来控制,而你只在需要的时候进行获取就可以了。相信通过这
2021-01-25 12:05:12
132
原创 重学Spring框架系列之——什么是Spring框架
说在前面Spring框架算得上是java程序员必备的一项技能了。不论是早期的SSM或SSH架构,还是现在流行的SpringBoot加SpringCloud构建的分布式、微服务架构。Spring在其中扮演着不可或缺的角色,其重要性也是不言而喻的。为了更好的工作和自身的提升,菜鸟又重新学习了一下Spring框架,在学习的过程中也有一些收获,从而想着通过文章将自己的学习过程记录下来。也希望可以帮助到有需要的人。如果文章中存在不合理或错误的地方也希望大家可以提出来,我会及时改正,希望我们可以一起进步。既然我们
2021-01-18 09:30:37
390
2
原创 菜鸟程序员都能看懂的“职责链模式”
最近河北一直在报道新冠疫情的相关信息,大家一定要注意防护,戴口罩,少聚集,勤洗手。相信河北、相信中国,我们一定会挺过去的。概述职责链模式也被称为责任链模式,是行为型设计模式的一种。职责链模式的核心思想是:将请求的发送者和接收者进行解耦,通过创建一个接收者对象的“链”(就是将多个接收者连接起来)来处理请求。在职责链模式中通常每个接收者都包含另一个接收者的引用,这样在处理请求时,如果自己无法处理该请求时就会把请求,传递给下一个接收者,依次类推直到最后。职责链模式UML类图类图讲解Handler
2021-01-11 10:50:32
161
原创 作为优秀的程序员你确定不了解一下“策略模式”
时光荏苒,岁月如梭,不知不觉2020就这么过去了。新的一年,预祝大家心想事成、身体健康。基本介绍策略模式是行为型设计模式的一种。策略模式的核心思想是:定义算法族(可以理解为多组算法、行为),将其分别封装起来,并且确保他们之间可以相互替换。这样做可以将算法的变化独立于使用算法的用户。可能通过这些专业的术语还是不太好理解什么是策略模式。那么我打个比方:中午了要去吃饭了,我们可以选择米饭、面条、水饺、炒饼等等……这其中的每一个食物我们都可以将其看作是一个策略。策略模式中体现出了三个设计原则:1、将变
2021-01-04 08:43:13
196
原创 不是吧!你还在写if-else吗?快用“状态模式”代替吧
2020年已经进入倒计时了,大家立好的flag完成了吗?2020实“鼠”不易,希望2021可以“牛”转乾坤。简介状态模式是行为型设计模式的一种。其设计理念是当对象的内部状态发生改变时,随之改变其行为。状态和行为之间是一一对应的。该模式主要用于,对象的行为依赖于它的状态,并且其行为是随着状态的改变而切换时。状态模式UML类图类图讲解State:抽象状态接口(也可以定义成抽象类),该接口封装了所有状态所对应的行为。ConcreteStateA/B:具体状态类,该类实现了抽象状态接口,会根据自.
2020-12-28 08:56:05
200
原创 设计模式之——解释器模式
简介今天给大家介绍的设计模式叫做“解释器模式”,该模式是“行为型设计模式”中的一员。解释器模式的核心思想是:给定一个语言,定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子。听完这句话话是不是顿时感觉一脸懵?什么语言、文法、句子,都是些什么鬼?别慌让“菜鸟”来给你分析一波。文法:可以将其理解为一种规则,就好比汉语中一句话必须由“主谓宾”三者构成一样。句子:符合文法规则的一种表现,可以简单理解成符合汉语规则的一句话。语言:将所有句子汇集起来的一个集合就是语言。我们.
2020-12-23 09:05:28
206
原创 程序员必备技能之——备忘录模式
别把一辈子过成一天。简介备忘录模式是属于行为型设计模式的一种。该模式的核心思想是在不破坏封装性的前提下,捕获一个对象的内部状态,并且在该对象之外保存捕获到的状态。这样做的意义是确保以后可以随时将该对象恢复到原来保存的某一状态时。通俗点说备忘录模式就是通过一种特定的手段来记录一个对象的某一状态,或者是该对象的某些数据,当要做回退时,可以轻松的从备忘录中获取原来的状态、数据并进行恢复。备忘录模式UML类图类图讲解Originator:原始对象,也可理解为需要做备忘的对象。Memento:备忘.
2020-12-14 09:49:15
187
原创 作为一位即将单独负责项目的菜鸟来谈谈他的心里话
2020年的年末我接到了一个通知,这个通知来得突然却也在意料之中。通知的内容是从这周(12月7号)开始要带项目了,这也是我人生第一次完整的负责一个项目。说实话从接到通知到此时此刻我的内心或多或少的还是有那么一点没底,毕竟是第一次独立负责项目。虽然说只是在原有的基础版本上做一些特色的开发和调整,不会有特别大的技术难度,但是对我而言这次却是一次角色的调整。以前的自己只是单纯的负责领导交给的任务即可,充其量也就是考虑考虑如何更加高效、优雅的完成功能。现在不同了,不再是一个只要会冲锋陷阵的小兵就可以了。从一.
2020-12-07 09:14:10
416
原创 程序员怎能不会“中介者模式”,请耗子尾汁
今天让我们一起来了解一下中介者模式,希望通过本文的讲解大家可以更加深入的理解该模式。基本介绍中介者模式属于行为型设计模式的一种。该模式的核心思想是:通过一个中介类来封装一系列的对象交互,让各对象之间不需要显示的相互引用,从而促使对象间的耦合度降低。举个栗子小明想要租房,他比较笨采用最原始的方法走街串巷找寻最合适的房子。经过一番周转,费了九牛二虎之力租到了合适的房子(不使用中介者模式)。菜鸟也想要租房子,不过菜鸟聪明啊肯定不会自己瞎转,直接找到了中介。通过中介,轻松搞定租房问题。这就是中介
2020-11-30 13:34:21
155
原创 升职加薪必备技能:设计模式之——观察者模式
基本介绍观察者模式属于行为型设计模式的一种。该模式的主要作用是定义了对象之间一对多的依赖关系。当“一”的一方发生改变时会自动通知给每一位依赖者。简单来说我们可以将该模式理解成一个社区的“居委会”,每位居民都依赖于居委会,当有什么消息时居委会将通知给每位居民。相信通过这个简单的小例子我们可以看出,观察者模式是站在易用和低耦合的前提下,保证所有依赖者可以收到被依赖一方的改变。UML类图讲解类图讲解Subject:抽象主题(抽象被观察者),可以对比上文理解成抽象的居委会。接口中定义了新增、删除观.
2020-11-23 09:55:39
119
原创 设计模式系列:一文让你领会“迭代器模式”的用途
基本介绍通过“迭代”二字我相信大家大概就可以猜出该设计模式的使用场景了。那么大家可能就会有疑问了,遍历还需要设计模式吗?是不是有点过分了?别慌听我慢慢道来。假设我们的集合是用不同的方式实现的,比如:数组、List、自定义的集合等等……此时我们想遍历这些集合的话就需要使用不同的方式,并且我们还需要知道集合的内部结构,才能对应的选择适合的遍历方式。这样做的话是不是就有一些繁琐了呢?为此就衍生出了“迭代器模式”,该模式的设计思想是:提供一种遍历不同集合元素的统一接口,并且无需暴露该集合的内部结构。“迭.
2020-11-16 08:48:21
592
原创 设计模式系列:一文带你领略“访问者模式”的魅力
访问者模式相对来说比较抽象和难以理解,可能单纯地通过文字、类图、案例代码大家还是不太容易理解该模式,不过希望大家不要急躁,可以静下心来用心的体会该设计模式的魅力。相信你一定会有所收获。基本介绍访问者模式的基本概念:封装一些作用于某种数据结构中元素上的操作。其有一个重要的特征是可以在不改变数据结构的前提下定义一些新的操作。简单来说访问者模式主要的作用就是将“数据结构”和“数据操作”进行分离,解决这两者之间耦合性的问题。访问者模式的基本执行原理就是在被访问的类里添加一个接口,用于接待访问者。一般数情.
2020-11-09 09:41:07
163
原创 设计模式系列:一文带你了解“命令模式”
基本介绍我们日常的开发就很好地体现出了命令模式,比如:领导将开发任务指派给程序员去完成。其中领导就是“命令的发布者(调用者)”,程序员就是“命令的具体执行者(接收者)”,这个指派的动作就是“具体的命令”。命令将调用者和接收者进行连接,从而完成开发任务,这一套流程就可以看作是命令模式的执行原理。命令模式使得请求的发送者与请求的执行者之间消除耦合,让对象之间的调用关系更加灵活。在命令模式中,会将一个命令封装成一个对象,同时命令模式也支持可撤销的操作。命令模式UML类图UML类图讲解Invoker.
2020-10-31 13:10:08
230
原创 优秀程序员必备技能:设计模式之——模板模式
基本介绍模板模式也被称为“模板方法模式”,该模式是行为型模式的一种,模板模式相对来说比较简单也比较容易理解。该模式的实现思路是:在一抽象类中定义一个公开的模板方法,该方法规定了某一算法(也可称为功能)的执行流程,其子类可以按照需求重写类中的其它方法,但是整个算法将以模板方法定义的流程进行。换言之,模板方法规定了一个算法的整体骨架(执行流程),并将一些具体步骤延迟到子类中,从而促使子类可以在不改变算法结构的前提下,就能做到重新定义该算法的一些特定操作。通常情况下我们会在模板方法所在的父类中定义一个方.
2020-10-24 14:15:08
220
1
原创 了解代理模式这一篇文章就够了
基本介绍代理模式的核心思想就是:为一个对象(被代理对象)提供一个代理对象,并且通过代理对象控制对原来被代理对象的访问。可以简单理解为通过代理对象访问目标对象。这样做最大的好处就是可以在目标对象实现的基础上,增强额外的功能,起到扩展目标对象的效果。被代理的对象可以是远程对象、创建时开销大的对象、需要安全控制的对象等。实现代理模式有不同的形式,主要有:静态代理、动态代理(也被称为JDK代理或接口代理)、Cglib代理(不需要实现接口,在内存中动态创建代理对象)。单纯的通过文字描述大家可能对代理模式的理解.
2020-10-16 10:02:39
159
原创 优秀程序员必备技能:设计模式之——享元模式
今天小菜鸟跟大家分享一下设计模式中的“享元模式”。简介享元模式也被称为“蝇量模式”,属于结构型设计模式的一种,该模式的主要作用就是通过运用共享技术促使大量细粒度的对象可以被复用。该模式常用于系统底层开发,解决系统性能问题。像我们常用的数据库连接池,字符串常量池等……都是使用享元模式来完成的。“池”中存储了我们创建好的对象,当需要时进行判断,如果“池”中有就可以直接从中取出,如果没有就创建一个对象并放到池中。通过使用这些“池”就可以避免重复创建对象而导致内存浪费的问题,从而提高系统的效率。外部状态.
2020-09-28 09:20:58
247
原创 一文带你学会“外观模式”,不会你找我
基本介绍外观模式也叫做“过程模式”,该模式的核心思想是为不同子系统(类)中的一组接口提供一个一致的界面(类)。也就是定义一个高层次的类,该类封装了一些低层次的类和其方法,客户端使用时就用该类。通过外观模式可以屏蔽子系统中的细节,促使调用端只需要跟高层次的类发生关系即可,无需再关注子系统的内部实现细节。外观模式还从一定程度上简化了用户的操作,降低了使用的复杂度。外观模式UML类图角色以及职责讲解:1、FacadeClass(外观类):给客户端提供统一的接口,外观类知道当前的请求由哪些子系统负.
2020-09-15 09:43:42
143
原创 程序员必备技能:设计模式之——组合模式
什么是组合模式“组合模式”也被称为“部分整体模式”该模式属于结构型模式的一种。讲解该模式之前先带大家熟悉一下“树形结构”。相信大家对“树形结构”不会太陌生,如果你刚好不太了解的话可以想一下大树,一棵树它分别有树根、树枝、树叶,正好树形结构中也有根节点、子节点(非叶子节点)、叶子节点。组合模式就运用了树形结构,该模式的核心思想是:将多个对象组合成树形结构,以此结构来表示“整体-部分”之间的层次关系。组合模式UML类图UML类图讲解:1、Component:组合模式中的“根节点”,可以是接口.
2020-09-08 09:14:48
412
原创 优秀程序员必备技能:设计模式之——装饰者模式
基本介绍相信通过名称大家可以大致猜出“装饰者模式”的含义,它的核心思想就是通过一些“装饰品(类)”对原有的基础类进行包装,从而增强或者是完成某些特定的功能。“装饰者模式”可以动态地将新功能附加到对象上。并且在对象的扩展方面,使用该模式要比单纯的通过继承更加有弹性。核心设计UML类图:通过上面的UML类图,可以得知装饰者模式大致可以分为四个角色:Component(抽象组件): 可以是一个抽象类或者接口,是要被包装类的顶级类。ConcreteComponent(具体组件): Component.
2020-09-01 08:54:04
258
原创 一文带你学会“桥接模式”,不会你找我
聊聊闲话说说闲话,可以选择性地跳过。后知后觉的我才发现,夏天就这么过去了,秋天竟然悄悄地走来了。一场一场的雨使得天气变得越来越凉了,大家应该多注意、别嫌麻烦,该添衣的时候也需要适量的多穿一点。本来每天写BUG就已经够辛苦了,再不对自己好点岂不是太委屈了。桥接模式简介桥接模式是结构型设计模式的一种。该模式的核心思想就是将“行为实现”和“抽象”拆分开,将其放在两个不同类层次中,使得这两个层次可以独立进行改变。桥接模式基于类的“最小设计原则”,通过封装、聚合、继承等行为,让不同的类承担不同的职责。桥.
2020-08-26 11:08:52
248
原创 作为一位优秀的程序员怎么能不知道“适配器模式”
今天给大家分享一下设计模式中的“适配器模式”。基本介绍适配器模式属于“结构型模式”的一种。该模式的核心思想就是将类中原本不适合当前客户端使用的接口转换成适用的接口,从而大大提高程序的兼容性。并且从使用者的角度是看不到被适配的类地,也降低了代码之间的耦合性。适配器模式的工作原理就是:用户调用适配器转换出来的接口,适配器再调用被适配类的相关接口,从而完成适配。通过不同的实现方式,我们可以将其分成三类:类适配器模式,对象适配器模式,接口适配器模式。讲解案例小菜鸟基于linux系统开发了一个工具类.
2020-08-19 09:06:25
183
原创 一文带你学会设计模式之——建造者模式,不会你揍我!
今天让我们一起来了解一下设计模式中的“建造者模式”!建造者模式简介1、建造者模式也被称为生成器模式,是创建型模式的一种。2、它的设计理念就是将对象的创造过程抽象出来,从而将对象的创建和表现进行分离。3、建造者模式就是将一个大而复杂的对象进行拆分,通过多个小步骤来完成。4、它允许客户端只通过指定对象的类别和内容就可以创建出一个对象,用户不需要知道内部的具体构建细节。建造者模中的四个角色:1、产品角色:一个具体的产品对象。2、抽象建造者:定义创建一个产品对象的各个部件的方法,不管具体.
2020-08-12 10:03:27
152
原创 兄弟,你确定不学会使用“原型设计模式”来创建类吗?
先赞再看,多好的习惯。今天跟大家分享一下设计模式中的“原型模式”。概述当系统中需要大量创建相同或者相似的对象时,就可以通过“原型设计模式”来实现。原型模式是“创建型设计模式”中的一种。原型模式的核心思想是,通过拷贝指定的“原型实例(对象)”,创建跟该对象一样的新对象。简单理解就是“克隆指定对象”。这里提到的“原型实例(对象)”,就是被克隆的对象,它的作用就是指定要创建的对象种类。需要拷贝的原型类必须实现"java.lang.Cloneable"接口,然后重写Object类中的clone方法.
2020-08-06 09:47:18
183
原创 你还在new对象吗?用个“抽象工厂模式”生产对象它不香吗!
今天跟大家分享一下工厂设计模式家族中的“抽象工厂模式”。简介了解工厂模式的都知道,工厂模式就是用于大量创建某种,某类,或者某批对象时的一种优秀的解决方案。本文介绍的“抽象工厂模式”就是工厂模式的一种体现,是属于建造型模式的一种。抽象工厂模式中有四个角色:分别是抽象产品角色,具体产品角色,抽象工厂角色,具体工厂角色。其实“抽象工厂模式”很好理解,我给大家举个小例子,各位优秀的读者们应该就可以看懂了,看的时候记得将上面的四种角色代入进去,这样方便大家理解与记忆。一个老板,想要生产汽车(这里所说的.
2020-07-29 09:10:03
207
原创 一文带你学会“工厂方法模式”,不会你揍我
先赞再看,多好的习惯。上一篇文章,给大家分享了一下“简单工厂模式”,该模式适用于业务简单或者“产品(不同的类)”数量较少的情况下。今天,咱们还拿“汽车厂开发生产汽车软件”这个案例进行讲解。一开始,汽车厂刚刚起步,名声不大,销售额也有限,老板也就只生产国产车,此时我们设计的生产汽车软件,使用“简单工厂模式”还是可以满足需求的。但是随着企业的发展,产业的扩大,老板不再满足只制造国产车,进一步开始涉足合资车。在实际需求的驱使下,我们此时需要开设分公司,来生产合资车。作为老板,为了方便管理,那么肯定要对.
2020-07-22 10:39:42
117
原创 程序员必会设计模式之——“简单工厂模式”
今天跟大家分享一下工厂设计模式家族中的“简单工厂模式”。简介“简单工厂模式”是属于“创建型模式”,它是工厂模式家族中的一种,也是工厂模式家族中最简单、实用的一种模式。简单工厂模式也被称为“静态工厂模式”。通过该设计模式的名称,我们可以大概的猜测一下,什么是“简单工厂模式”。在现实生活中“工厂”的作用就是创造某一种类产品的。比如有造汽车的工厂、造手机的工厂。那么我们将这种思想,转换到编程中,就可以理解为:“创建一个工厂类,通过该类来创建多种类的实例对象。”工厂模式的核心实现思路:定义一个类,该类.
2020-07-17 13:35:57
181
原创 优秀的程序员怎么能不知道类是何时被加载进虚拟机的
开始正文前,让我们先来了解一下什么是“类的动态加载机制”。当编写好一个java类并通过编译器编译成class文件后,该类就可以在JVM虚拟机中运行了。我们将,class文件被加载到虚拟机中的过程称为“类加载机制”。“动态加载”就是在程序运行的过程中将class文件加载到虚拟机中。我们都知道java可以做到运行时动态加载类,那你知道,编写好的类是什么时候加载到java虚拟机中的吗?下面就让我们就一起探讨一下,java类在什么情况下会被加载到JVM虚拟机中。首先让我们先将idea作出如下配置(我使用的.
2020-07-11 16:21:09
277
原创 一文让你学会“合成复用原则”,不会你来找我!
菜鸟有句话想说:“加不加班的不重要,我只是比较喜欢晚上公司门口的路灯。”今天跟大家分享一下,设计模式七大原则中的“合成复用原则”。该原则阐述的是,我们应该如何复用类。讲“合成复用原则”之前先来聊一聊类的“复用”。复用类我们可以通过“继承”和“合成”两种方式来实现。这两种方式中,“继承”相信大家都比较了解,我们就先看一下继承的优缺点。继承的优点:容易实现并且容易修改和扩展继承来的内容。继承的缺点:它最大的缺点就是增加了类之间的依赖,当父类发生改变时,其子类也会被动发生改变。并且子类继承来
2020-07-05 10:12:48
226
原创 面试官:这年轻人讲的“迪米特法则”有那么点东西
说说闲话工作本来就辛苦,学习当然要开心着进行了。开始正文前,先吐槽一件小事(跟本文技术点无关,可手动过滤掉)。最近天气是越来越热了,雷雨天气也多了起来。最近这几天“菜鸟”这里一直是阴晴不定,雨是说来就来。不过经过我多年的观察发现了这么一个现象:下雨的时间一般都集中在上下班的路上。这一发现让我很是困惑,是我备受雨水的青睐,还是它本身就是一个惯犯?简介创建史:迪米特法则是1987年秋天由美国Northeastern University的Ian Holland提出的。基本概念:1、一个类
2020-07-02 10:35:50
270
原创 面试官:这年轻人讲的“开闭原则”有那么点东西
端午假期就这么悄悄的溜走了,又要开始上班啦!各位读者假期过得怎么样?有没有吃粽子?“菜鸟”的假期过得很愉快,因为没有加班,哈哈哈!不过转念一想之后的三个月都没有额外的假期了,就很难过。哎,只能眼巴巴地盼望着,国庆假期快点到来吧!我们总不能闲等这对吧?还是赶紧跟“菜鸟”一起学学新的知识吧!今天给大家分享一下设计模式七大原则中的“开闭原则”,也称为OCP原则。好了闲话不多说,直接进入正文。“开闭原则”是面向对象编程中最基础和最重要的设计原则之一。我们在设计程序中使用一些设计模式和遵守相关的设计原则,都是
2020-06-28 09:18:24
254
原创 深度解析:设计模式七大原则之——里氏替换原则
临近端午节,各位读者,你们假期行程安排好了吗?“菜鸟”已经做好决定了,谁都不能阻拦(产品经理也不行),“菜鸟”要好好在家休息三天。最近实在是太累了,一直在疯狂的加班。好了好了言归正传,开始我们的正文。今天由“菜鸟”为大家分享一下设计模式七大原则中的“里氏替换原则”。讲该原则之前我们不得不提一下面向对象对象的三大特性,它们分别是:封装、继承、多态。相信了解面向对象编程的程序员,对这三大特性肯定不会陌生。那么肯定就有人会产生疑问了,这三大特性跟我们今天的内容有什么关系吗?别慌且听“菜鸟”慢慢诉说,我们今天
2020-06-24 08:54:21
425
原创 努力奋进:一个编程界小菜鸟的心里话
写在开头又到了一周中最愉快的时刻了,大家的周末是怎么度过的那了?“菜鸟”是在学习和写文章中度过的。不知不觉,已经写了将近两个月的文章了,小小的感慨一下时间过得可真快呀!本来今天是想写一篇技术文的,想着开始正文之前跟大家闲聊一下,没成想越写越多,心里还涌现出好多感想。索性就改了标题,换了内容,写出了今天这篇文章。建议之前收到一位初入职场的读者发来的私信,他说感觉领导分配的任务好难,看着都是一脸懵。其实当年的“菜鸟”也是这样,初入职场,面对领导的需求发现自己一脸懵,不是看不懂,就是不会写。不过很庆幸
2020-06-21 09:21:51
329
原创 玩转设计模式:深入学习“依赖倒转原则”
先赞再看,养成习惯。闲话少说,直入正题。今天由菜鸟给大家分享一下设计模式七大原则中的依赖倒转原则。设计理念1、上层模块不应该依赖下层模块,两者都应该依赖其抽象。2、抽象不应该依赖细节,细节应该依赖抽象。通过上面的两点我们不难发现,其实依赖倒转原则的核心思想就是“面向抽象”编程。这里的抽象可以是“接口”也可以是“抽象类”。倒转的体现打个比方,现在有一个出售水果的水果店系统需要开发。正常逻辑思考,第一步考虑是需要先有一个店,然后进一步考虑,要出售各种各样的水果。用编程的术语来描述,此时的
2020-06-18 08:57:22
171
原创 一文让你再也不怕面试官提问“接口隔离原则”
来自菜鸟的关怀随着天气越来越热,大家是不是都已经过上“左手小冰棍,右手大西瓜,吹着小空调,乐的笑哈哈”的日子了?不过还是要在这里提醒大家一下,冷饮、空调虽然好,但是一定要适度啊!这不最近菜鸟就因为欢乐过度,乐极生悲了,急性肠胃炎找上了。拉肚子,拉到怀疑人生,上厕所,上到头皮发麻,整个人都已经虚脱了。所以大家一定要多多注意,千万别跟菜鸟一样吃坏肚子。虽然身体不适,但是菜鸟还在坚持写文章。看在菜鸟这么努力的份上大家记得点赞加关注呦!基本概念专业解释:1、客户端不应该依赖它不需要的接口。2、一个
2020-06-13 08:55:58
302
原创 一文让你读懂“设计模式七大原则之——单一职责原则”
上一个轮的加班刚刚完结还没一周,领导就跑来告诉我:“小菜鸟,周末跟加班才更般配哟!”可怜的孩子又迎来了新的加急任务,美好的加班生活又要开始喽。不!这不是菜鸟想要的生活,菜鸟要反抗,菜鸟决定了,要辞职。这不偷偷拿出手机登录各大招聘网站进行了浏览,突然发现怎么招聘还要求会设计模式呢?为此赶紧拿出那早已沾满灰尘的资料进行恶补。哎!在这之前还是扶我起来加班吧。以上内容纯属虚构(除了加班),如有雷同请看下文。今天让我们一起学习一下设计模式七大原则之——单一职责原则。基本概念拿java的类来说单一职责原
2020-06-10 09:41:33
262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人