![](https://img-blog.csdnimg.cn/20200324102200283.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Head First Design Patterns
主要是常用的java设计模式
闪电蛙
生命不息,奋斗不止!
个人博客:http://www.cloverhk.top,欢迎各位多多指教。
展开
-
生产者-消费者模式Java实现
生产者-消费者是多线程协作中非常典型的例子!主要是生产者负责生产产品,然后消费者进行消费,但是这样的模式有几个前提①生产者在生产前必须判断消费者线程是否占用(这里用来了加锁机制来避免发生线程安全的问题,在某一时刻内只能有一个对象在占用线程),如果线程为空闲,则才生产产品,生产完成之后,再"唤醒"消费者进行强制消费,这里有点意思啊!②消费者在消费时,同样也要判断是否线程空闲,如果占用就一起”等待“,否则就消费产品,完成后就”唤醒“生产者进行生产产品!下面我们将上面的思路转换为代码实现一波:.原创 2020-08-18 21:50:34 · 478 阅读 · 0 评论 -
单例模式在JDK中的应用
话不多说,直接上源码在Runtime类中使用了单例模式:public class Runtime { //静态方法的方式创建对象 private static Runtime currentRuntime = new Runtime(); /** * Returns the runtime object associated with the current ...原创 2020-04-09 16:33:56 · 451 阅读 · 0 评论 -
Head First Design Patterns——单例模式
单例模式:也叫单件模式,可以用来创建独一无二的,只能有一个实例的对象,并且该类只提供一个取得其对象实例的方法(static)!它是所有设计模式中最简单的,它的类图只有一个类:1)饿汉式(静态常量)创建的步骤:1.构造器私有化(防止 new来获得实例)2.类的内部创建对象3.向外界暴露一个静态的公共方法。getInstance4.代码实现//饿汉式(静态变量)class Si...原创 2020-04-09 11:55:48 · 212 阅读 · 0 评论 -
Head First Design Patterns——装饰者模式
基本介绍:装饰者模式:动态的将新功能附加到对象上,在对象功能扩展方面,它比继承更具有弹性,装饰者模式也体现了开闭原则(ocp),装饰者模式也可以理解为包装模式。例如:我们要寄一个手机,发快递我们的操作应该如下 :①把手机用防震膜包裹起来,这是第一层的装饰②接下来我们得用快递盒进行包装③最后再用塑料袋子封装好这样一个手机就完成了包装,装饰者模式就是这样的原理,下面来看具体的...原创 2020-04-08 23:26:53 · 504 阅读 · 0 评论 -
OO的基本原则
1.封装变化2.多用 组合,少用继承3.针对接口编程,不针对实现编程4.为交互对象之间的松耦合设计而努力5.类应该对扩展开放,对修改关闭6.依赖抽象,不要依赖具体类7.只和朋友交谈8.别找我,我会找你9.类应该只有一个改变的理由。...原创 2020-04-08 18:00:46 · 258 阅读 · 0 评论 -
Head First Design Patterns——代理模式
代理模式指的就是使用现一个代理类来代理另一个目标类的行为,比如说我们一般在租房子的时候,不直接和房东进行交涉,而通过房屋中介来进行操作,因为他们手里可能有很多的房源,对于房东来说,就可以直接与房屋中介进行交流。类似的例子数不胜数,又比如好莱坞的明星,都有他们自己的经济人,当然这里指的可不是宝强的经济人,开个玩笑,他们的经济人负责明星的经济活动,这里指的就是代理模式!代理模式分为:静态代理模式...原创 2020-04-08 12:27:38 · 126 阅读 · 0 评论 -
Head First Design Patterns——工厂方法模式
我们现在要添加一个功用,那就是订购披萨,根据不同的地方特色来订购,例如,BJCheessPizza,BJPepoperPizza,LDChessPizza等种类,此时,我们可以将OrderPizza类中的createPizza()方法定义为abstract类型,谁调用就实现这个方法,然后对应的种类就实现功能了下面的是类图的表示形式:当然,这是在上篇的基础上改的,如果没有了解的参照:...原创 2020-04-05 21:29:09 · 272 阅读 · 0 评论 -
Head First Design Patterns——简单工厂模式(静态工厂)
在我们实例化对象时,第一个想到的就是new对象,没有房子,new一个,没有女朋友,new一个甚至好多个。new对象就是和类之间建立了耦合关系,如果有很多的对象,那么类与对象间就形成了强耦合,灵活性就变差了,所以,一般我们在开发过程中都是面向"接口"编程的,通过多态,可以与任何新类实现该接口。但是,同样,代码量太大,就搞不定了!那么除了new就再没有其他的办法了吗?这就涉及到了设计模式的设计:...原创 2020-04-04 15:43:18 · 199 阅读 · 0 评论 -
你真的精通设计模式的七大原则吗
文章目录一、设计模式的目的:二、设计模式的七大原则:1.单一职责原则2.接口隔离原则3.依赖倒转(倒置)原则4.里氏替换原则5.开闭原则6.迪米特法则7.合成复用原则一、设计模式的目的:1)代码重复性(即:相同功能的代码,不用多次编写)2)可读性(即:编程规范怀,便于其他程序员的阅读和理解)3)可扩展性(即:当需要增加新的功能时,非常的方便,称为可维护)4)可靠性(即:当我们增加新的功能...原创 2020-04-03 00:06:45 · 144 阅读 · 0 评论 -
UML的正确食用方式————正解!!
在开发中,类图可以反映类与类之间的关系,是面向对象(oo)开发最重要的工具,下面我们来看看类图的基础知识类第一行,表示的是类名,如果为斜线则类为抽象类第二行,表示的是类的属性,Person类有两个属性第三行,表示的是类的方法和行为+表示Public,-表示private,#表示protected接口第一行,表示的是接口名第二行,表示的是接口的属性第三行,表示的...原创 2020-04-02 12:07:16 · 148 阅读 · 0 评论