摘要:
Abstract Factory模式,即抽象工厂模式,该模式要求Factory类为抽象的,并且里面的生产出来的产品也是抽象的! 这里需要着重说的一点就是,抽象类和抽象方法的作用——规范了子类的实现,以及当使用时候,直接可以面向抽象父类/接口的方式进行操作,利用多态的面向对象特性。 同时,需要注意的是,所有抽象的类全都是封装到一个包中的,与调用的不同。 这种方式的一个应用就是JDBC的规范,SUN公... 阅读全文
摘要:
Builder模式又叫建造模式,是用于组装具有复杂结构的实例的模式。 示例程序是编写一个文档,并且写入到文件中,该文档具有以下结构,含有标题,字符串,一些条目。 Builder抽象类,为建造模式的核心 package site.wangxin520.gof.builder; /** * 建造者模式的核心——建造者 * 负责定义用于生成实例的API接口 * @author wangXgna... 阅读全文
摘要:
关于消息的发布与订阅,之前一直使用的是activeMQ基于JMS的消息队列进行操作的,最近听说有一个更高效的消息的发布与订阅技术,就是Kafka。 关于kafka的介绍,在这里就不做过多讲解了,因为我自己也不是很了解,大概就知道它与activeMQ一样,都是具有生产者和消费者的发布与订阅消息的机制。 具体请参见百度百科Apache Kafka。 今天我想说的就是,初遇kafka所踩的坑,非常大的坑... 阅读全文
摘要:
通常我们会使用new 类名()的方法会去生成一个新的实例,但在开发过程中,有时候也会有“在不指定类名的前提下生成实例”的需求,那样,就只能根据现有实例来生成新的实例。 有三种情况,不能根据类来生成实例: 对象种类繁多,无法将它们整合到一个类中时; 难以根据类生成实例的时; 想解耦框架与生成的实例时。 不根据类来生成实例,而是根据实例来生成实例,就是Prototype模式,又叫原型模式。 实例程序... 阅读全文
摘要:
当程序运行时,有时会希望在程序中,只能存在一个实例,为了达到目的,所以设计了Singleton模式,即单例模式。 单例模式的特征: 想确保任何情况下只存在一个实例 想在程序上表现出只存在一个实例 示例程序: Singleton单例类 package site.wangxin520.gof.singleton; /** * 单例模式获取单例对象的类 * @author wangXgnaw ... 阅读全文
摘要:
在上一章,模板模式中,我们在父类规定处理的流程,在子类中实现具体的处理。如果我们将该模式用于生成实例,便演变成了Factory模式,即工厂模式。 在Factory模式中,父类决定实例的生成方式,但并不决定所要生成的具体的类,具体处理全部交给子类进行。 设计实例则是模仿Spring框架进行的操作,模拟制作身份证。为了模拟Spring框架解耦,我们采用分包的方法,即生成实例的框架放在framework... 阅读全文
摘要:
Template模式又叫模板模式,是在父类中定义处理流程的框架,在子类中实现具体处理逻辑的模式。当父类的模板方法被调用时程序行为也会不同,但是,不论子类的具体实现如何,处理的流程都会按照父类中所定义的那样进行。 示例程序: 将一段字符串和字符循环显示五次的程序: AbstractDisplay 父类抽象的模板,里面定义了处理流程,但是没有具体把实现写出来 package site.wangxin... 阅读全文
摘要:
Adapter模式(适配器模式)也被称为Wrapper模式(包装模式);个人理解就是,新的接口,采用旧的方法实现。 适配器模式具有两种实现方式: 类适配器模式(使用继承旧方法的类,来实现新接口的调用); 对象适配器模式(使用委托的方法,将旧对象编程新接口实现类的一个属性,进行调用)。 实例程序1: Banner类,被适配的类,即旧方法实现类 package site.wangxin520.go... 阅读全文
摘要:
设计模式是开发者前辈们给我们后背的一个经验总结。有效的使用设计模式,能够帮助我们编写可复用的类。所谓“可复用”,就是指将类实现为一个组件,当一个组件发生改变时,不需要对其他组件进行修改,或者只需要修改很小一部分即可。 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。 下面是一段实现了迭代器模式的示例程序,这段程序作用是,将书BOOK放到书架... 阅读全文
摘要:
在html中实现文件上传的方式为form表单中使用input type="file"控件,但是这个控件往往显示不是美观,影响页面效果,这时候,一般就通过一键上传的操作,来实现点击一个按钮上传文件. 原理: 设置一个具有file上传文件框的form表单,并且设置style表单为不显示的,同时呢,要对表单中的input控件进行onchange事件监听,当input控件改变的时候,就触发表单提交的操作.... 阅读全文