摘要:适配器模式的介绍:适配器模式在开发中使用率很高,适配器是将两个不兼容的类融合在一起,它有点像粘合剂,将不同的东西通过一种转换使得它们能够协作起来。例如经常碰到两个不相关的类之间进行交互,第一个解决方案是修改各自类的接口,但是如果没有源码或者我们不愿意为了一个应用而修改各自的接口,此时怎么办?这种情况
阅读全文
HelloWorld开发者社区www.helloworld.net - 开发者专属的技术社区 |
|
04 2017 档案
摘要:适配器模式的介绍:适配器模式在开发中使用率很高,适配器是将两个不兼容的类融合在一起,它有点像粘合剂,将不同的东西通过一种转换使得它们能够协作起来。例如经常碰到两个不相关的类之间进行交互,第一个解决方案是修改各自类的接口,但是如果没有源码或者我们不愿意为了一个应用而修改各自的接口,此时怎么办?这种情况
阅读全文
摘要:代理模式的介绍:代理模式也称为委托模式,在开发中经常用到,是编程的好帮手,在日常生活中也比较常见。比如公司中午让同事帮忙带一份饭,比如我们请一个律师打官司,比如我们用代理服务器上网等等。代理模式真是无处不在。 代理模式的定义:为其它对象提供一种代理以控制对这个对象的访问。 代理模式的使用场景:当无法
阅读全文
摘要:组合模式的介绍:物以类聚组合模式,结构型模式之一,组合模式比较简单,它将一组相似的对象看作一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略掉对象与对象集合之间的差别。 组合模式的定义:将对象表示成树形的层次结构,使得用户对单个对象和组合对象的使用具有一致性
阅读全文
摘要:外观模式的介绍:外观模式在开发运用中的频率非常高,尤其是现阶段各种第三方SDK充斥在我们的周边,而这些SDK很大概率会使用外观模式,通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样就能够降低用户使用的复杂度,也对用户屏蔽了很多实现细节,当然 ,在我们的开发过程中,外观模式也是我们封装AP
阅读全文
摘要:享元模式的介绍:享元模式主要的作用就是可以对象共享,避免创建多对象。享元模式是对象池的一种实现,它的英文名字叫 Flyweight ,代表轻量级的意思。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享,避免创建过多的对象的效果,这样一来可以提升
阅读全文
摘要:由于解释器模式主要用在一种解释语言的语法或者表达式的方法的方式,工作中很少能用到这种模式,因为我们很少自己去实现一种语言,所以,我们就参考另外一篇文章,文章链接:http://www.cnblogs.com/SamFlynn/p/4501154.html 来学习 解释器模式是类的行为模式。给定一个语
阅读全文
摘要:访问者模式介绍:访问者模式是一种将数据操作与数据结构分离的设计模式,它是《设计模式》中23种设计模式中最复杂的一个,但是它的使用频率并不高,正如《设计模式》的作者GOF对访问者模式的描述:大多数情况下,你并不需要使用访问者模式,但是当你一旦需要使用它时,那你就是真地需要它了。 访问者模式的基本想法是
阅读全文
摘要:中介者模式的介绍:中介者模式是行为型模式这一,在日常生活中,比如两口子吵架,孩子和双方的父母会劝架,孩子和双方的父母就称有中介者的意思,就是“和事佬”,也就是说调解两个起争端的人。而中介绍者模式比这个例子要复杂的多,上面的例子只是涉及到2个人的,中介者模式要涉及的对象是多个。多个对象之间的交互关系,
阅读全文
摘要:迭代器模式介绍:迭代器模式,又称为游标模式,是行为型模式之一。迭代器模式是一个比较古老的模式,其源于对容器的访问,比如Java中的List,Map,数组等,我们知道对容器的访问必然会涉及到遍历算法,我们可以将遍历的方法封装在容器中,或者不提供遍历方法,如果我们将遍历的方法封装到容器中,那么对于容器类
阅读全文
摘要:状态模式的介绍:(重点就在这句)状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。 状态模式和策略模式的结构几乎是一样的,但是他们的目的,本质却完全不一样。 状态模式的行为是平行的,不可替换的 策略模式的行为是独立的,可以相互替换的 用一句话来表述,状态模式把对象的行为封装在不同的状态类中
阅读全文
摘要:命令模式介绍:命令模式相对于其它模式来说并没有那么多的条条框框,不算是一个很“规矩”的模式,不过,就是基于这一点,命令模式相对于其它的设计模式更为灵活,我们接触比较多的命令模式无非就是菜单命令,如在操作系统中,我们点击“关机”命令,系统会执行一系列的操作,如先是暂停处理事件,保存系统的一些配置,然后
阅读全文
摘要:责任链模式介绍: 责任链模式是行为模式之一,什么是“链”?我们将多个节点首尾相连,就形成了链,对于链式结构,每个节点都可以拆开再重新连接,因此链式结构也具有很好的灵活性。将这样一种结构应用于编程领域,将每一个节点看作是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从一个链的首端发出,沿着链的路径
阅读全文
摘要:备忘录模式介绍: 备忘录模式是一种行为模式,该模式用于保存对象当前的状态,并且在之后可以再次恢复到此状态,这有点像我们平时说的“后悔”药。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外界访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露 备忘录模式的定义: 在不破坏
阅读全文
摘要:观察者模式介绍: 观察者模式是一个使用率非常高的模式,这最深用的地方是GUI系统,订阅--发布系统。因为这个模式一个重要作用就是解耦,将被观察者和观察者解耦,使得他们之间的依赖性更小。 定义:定义对象间一种一对多的关系,使得每当一个对象改变状态,则所有依赖它的对象都会得到通知并被自动更新 使用场景:
阅读全文
摘要:策略模式介绍: 在软件开发中经常会遇到这样的情况:实现某一个功能可以有多种算法或者策略,我们根据实际情况选择不同的算法或者策略来完成该功能。 针对这种情况,一种常规的做法是将多个算法或者策略写到一个类中,每一个方法对应一种算法或者策略,当然也可以将这些算法或者策略封装到一个方法中,对if else
阅读全文
摘要:定义: 在面向对象开发过程中,通常会遇到一些问题,比如我们知道一个算法所需要的关键步骤,并确定了这些步骤的执行顺序,但是,其中的某些步骤的具体实现是不可知的,或者说某些步骤是会随着环境的变化而变化,我们以一个小品中的故事为例,例如,把大象装冰箱,分三步: 第一步:把冰箱门打开 第二步:把大象放进去
阅读全文
摘要:定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有
阅读全文
摘要:建造者模式是一步一步创建一个比较复杂的对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的创建过程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。 本例以组装一台电脑为例,电脑有CPU,硬盘,内存,当然还有其它的,本例只用这三个属性表示
阅读全文
摘要:工厂模式适用于大量产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。我不喜欢看一堆的理论,书上把工厂模式分为下面三种。 1 简单工厂模式 2 工厂方法模式 3 抽象工厂模式 一 简单工厂模式 先看第1种,简单工厂模式,所谓简单,就是直接能想到的,直接 if 判断,符合条件就创建相应的
阅读全文
摘要:所谓单例模式,就是程序运行过程中只有一个实例,这对于程序来说是很有用的,在任何地方都可以访问,比如全局配置就可以做成一个单例模式。 下面是Java实现的一个单例模式 单例模式使用时需要注意内存泄露问题,因为单例模式是静态的实例保存,生命周期和所在的进程的生命周期一样长,如果在单例中保存了生命周期适于
阅读全文
摘要:我们知道,设计模式很有用,学好设计模式不但能让你写出更简洁,优雅的代码,还能使得代码的结构更清晰,也更有利于扩展 当然设计模式也不是万能的,一成不变的.设计模式只是前人总结出来的一种经验,一种特定问题的解决方法,不能看作是死的东西 不一定非要生搬硬套,非得按照设计模式书上来来,只要我们写的代码符合一
阅读全文
摘要:在堆中存放着几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象之中哪些还活着,哪些对象已经死去. 判断对象是否已经死亡有以下几种算法: 定义 : 给对象中添加一个引用计数器,当有一个地方引用时,计数器加1,引用失效时,就减1,当对象的引用计数器为0时,对象就是不可再被使用的.
阅读全文
摘要:先来看看Java对象在内存中的布局 一 Java对象的内存布局 在HotSpot虚拟机中,对象在内存中的布局分为3个区域 对象头(Header) Mark Word(在32bit和64bit虚拟机上长度分别为32bit和64bit)存储对象自身的运行时数据,包括哈希码,GC分代年龄,锁状态标志,线程
阅读全文
摘要:JAVA中创建对象直接new创建一个对象,对么对象的创建过程是怎样的呢? 程序运行过程中有许多的对象被创建出来.那么对象是如何创建的呢? 一 对象创建的步骤 1 遇到new指令时,检查这个指令的参数是否能在常量池中找到一个符号引用 2 如果找到符号引用,就检查这个符号引用是否已经被加载,解析和初始化
阅读全文
摘要:1 java虚拟机对内存的管理 java虚拟机在执行java程序的时候把内存分为若干个不同的区,这些区各自有不同的用处,以及创建和销毁时间. 有的区随着虚拟机的启动而启动,有的区则依赖用户线程的启动和结束而启动和结束. 根据java虚拟机规范,java虚拟机将内存分为下面几个部分:如下图 下面是对这
阅读全文
|