- 博客(14)
- 收藏
- 关注
原创 设计模式--访问者模式
访问者模式(Visitor)访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。访问者模式适用于数据结构相对稳定算法又易变化的系统。因为访问者模式使得算法操作增加变得容易。若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。访问者模式将有关行为集中到一个访问者对象中,其改变不影
2017-05-02 21:40:02
393
原创 设计模式--中介者模式
中介者模式(Mediator)中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改。User类统一接口,User1和User2分别是不同的对象,二者之间有关联,如果不采用中介者模式,则需要二者相互持有引用,这样二者的耦合度很高,为了解耦,引入了Mediator类,提供统一接口,MyMediator为其实现类
2017-05-02 21:36:12
331
原创 设计模式--工厂模式
工厂方法模式(Factory Method)工厂方法模式分为三种:普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。我们来看一下发送电子邮件和短信代码创建二者的共同接口Senderpublic interface Sender { public void Send();}创建两个实现类public class MailSender implements S
2017-05-02 21:23:46
371
原创 设计模式--装饰模式
装饰模式(Decorator)顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能。public class Source implements Sourceable{ public void method(){
2017-05-02 21:05:53
298
原创 设计模式--适配器模式
适配器模式(Adapter)适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式, 核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时Targetable,通过Adapter类,将Source的功能扩展到Targetable里。代
2017-05-02 20:59:58
285
原创 设计模式--抽象工厂模式
抽象工厂模式(Abstract Factory)美国通用公司原来是生产汽车(通用汽车)的,现在公司有钱了想要生产医疗器械,那我们新建立一个工厂(该工厂用来生产医疗器械(通用医疗器械)),我们不可能让生产汽车的工厂生产医疗器械。通用公司还没有变,现在汽车和医疗器械一起生产就行了。工厂方法模式有一个问题就是,类的创建和实现依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这样我们违背了设计
2017-05-02 20:52:40
304
原创 设计模式
一、模式定义和分类:1.模式的诞生与定义:Alexander给出了关于模式的经典定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的解决方案,无需再重复相同的工作。A pattern is a solution to aproblem in a context 模式是在特定环境中解决问题的一种方案
2017-04-30 22:24:58
420
原创 java中的虚方法
声明为父类类型的引用变量只能调用父类中的方法,如果此变量实际引用的是子类对象,而子类对象中覆盖了父类的方法,这时父类对象调用的是子类中的方法,这种机制就成为虚方法调用。所以,同样的两个引用变量调用相同的方法结果可能不同。父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中
2017-03-27 09:07:57
4311
原创 java虚拟机
相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的。那么,跨平台是怎样实现的呢?这就要谈及Java虚拟机(Java Virtual Machine,简称 JVM)。JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文
2017-03-26 15:11:04
296
原创 java的匿名对象
匿名对象要注意的事项: 1. 我们一般不会给匿名对象赋予属性值,因为永远无法获取到。 2. 两个匿名对象永远都不可能是同一个对象。匿名对象的应用场景: 1. 如果一个对象需要调用一个方法一次的时候,而调用完这个方法之后,该对象就不再使用了,这时候可以使用匿名对象。class student { public void study() {
2017-03-26 07:54:02
293
翻译 设计模式
你肯定有过这样的体会。某某时候,听人说起**模式。这么牛逼,回去得看看。结果仔细一看原来自己早就是这么用了,只是不知道它还有个这么高大上的名字。当然,专业的名字方便我们业内交流和教学,对技术的发展和传播起着重要的作用。废话不多说,和我一起来学习这些高大上的术语吧。本系列《设计模式学习》,通过对传统面向对象编程语言C#和函数为第一等的元素的javascript语言来对比学习加深对设计模式的领
2017-03-13 10:50:13
308
原创 HTML网页开发手册
1)贴图:<img src="图片地址">2)加入连接:<a href="所要连接的相关地址">写上你想写的字</a>1)贴图:2)加入连接:写上你想写的字 3)在新窗口打开连接:写上要写的字 消除连接的下划线在新窗口打开连接: 写上你想写的字 4)移动字体(走马灯):写上你想写
2017-03-13 10:44:02
935
原创 java中的抽象
今天我总结了一下java抽象,我在这里分享一下。一:什么是抽象? 抽象:整体把握事物,抽取事物的本质东西,剔除次要的东西。 像:抽取事物之后还得让事物像原来的事物。 有些人说,我不会对事物的抽象。(其实我们天天在对事物的抽象,如这个人张的帅,这个人长的美。其实这时就是对他的抽象。) 有时间说,我不会抽象(我们的抽象往往是孤立的,没有发散性的从多个角度进行
2017-03-10 20:30:20
1340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人