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