design-pattern-forjava 基于java版的设计模式实现。
1,抽象工厂模式,提供一个创建一系列相关或互相依赖对象的接口,而无需指定他们具体的类.
2,适配器模式:将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作.
3,桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。
4,建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.
5,命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志, 以及支持可撤销的操作。
6,组合模式:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的适用具有一致性。
7,装饰者模式 为已有的功能动态的添加更多功能的一种方式.
8,门面模式 为了系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
9,工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化那个类,工厂方法使一个类的实例化延迟到其子类。
10,享元模式:运用共享技术有效的支持大量细粒度的对象。
11,解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
12,迭代器模式:提供一个方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
13,中介者模式:用一个中介对象来封装一系列的对象交互。中介者使对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
14,备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这个以后就可将该对象恢复到原先保存的状态。
15,浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象.
16,深复制把引用对象的变量指向复制过来的新的对象,而不是原来的被引用的对象。
17, 代理模式:为其他对象提供一种代理以控制对这个对象的访问
18,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象。这个主题对象在状态发生变化时, 会通知所有观察者对象,使他们能够自动更新自己。
19,责任链模式:是多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。
20,简单工厂模式的最大优点在于工厂类中包含了必要的判断逻辑,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。
21,单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
22,状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类.
23,策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类于使用算法类之间的耦合。
24,模板方法: 通过把不变的行为搬移到超类,去除子类中的重复代码来体现他的优势.很好的代码复用平台。
25,访问者模式:表示一个作用于某个对象结构中的个元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。
ConnectionPool.java: public interface ConnectionPool{ Connection getConnection() throws test.res.ResourceNotAvailableException, SQLException; Connection getConnection(long timeout) thr
ArraryList: Using array implementation in the underlying. public class ArrayList{ Object[] object = new Object(10); //when you need an ArrayList, initialize it. int size=0; //record how many Obj
设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 观察者模式(Observer) 1、当一个对象(被观察)变化时,其它关联对象(观察者)都会随着变化! 2、关联关系:一对多;(一是被观察对象,多是观察者) 一、说明: 1、Observer 观察者(接口); 2、Guardian 观察者.实现类; 3、Watched 被观察(接口); 4、Abst
package com.design.prototype; /** * Prototype design pattern in Java */ public class Book { private int bid; private String bname; public int getBid() { return bid; }
目录 组合实体模式 组合实体模式(Composite Entity Pattern)用在 EJB 持久化机制中。一个组合实体是一个 EJB 实体 bean,代表了对象的图解。当更新一个组合实体时,内部依赖对象 beans 会自动更新,因为它们是由 EJB 实体 bean 管理的。以下是组合实体 bean 的参与者。 组合实体(Composite Entity) 它是主要的实体 bean。它可以是粗
目录 拦截过滤模式 拦截过滤器模式(Intercepting Filter Pattern)用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器,并在把请求传给实际目标应用程序之前应用在请求上。过滤器可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序。以下是这种设计模式的实体。 过滤器(Filter) 过滤器在请求处理程序执行请求之前或之后,执行某些任务。 过滤器链(Fi
设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 访问者模式(Visitor) 访问者:表示一个作用于某对象结构中的各元素的操作。可以在不改变各元素类的前提下定义作用于这些元素的新操作。 一、说明: 1、IElement 被访问对象.元素(接口); 2、ElementA 被访问对象.元素.实现类; 3、ElementB 被访问对象.元素.实现类;
definition Define an interface for creating an object but let subclasses decide which class to instantiate. Factory Mehtod lets a class defer instantiation to subclasses. example IHumanFactory.java pu
概述 (Overview) 现代软件开发需要满足复杂的业务需求。 它还需要考虑未来可扩展性和可维护性等因素。 良好的软件系统设计对于实现这些目标至关重要。 设计模式在这样的系统中起着重要作用。 要了解设计模式,让我们考虑以下示例 - 每辆车的设计都遵循基本的设计模式,四个车轮,方向盘,核心驱动系统,如加速器 - 断开 - 离合器等。 因此,所有重复建造/生产的东西,都必然会遵循其设计模式.....
描述 (Description) java.time.Matcher.pattern()方法返回此匹配器解释的模式。 声明 (Declaration) 以下是java.time.Matcher.pattern()方法的声明。 public Pattern pattern() 返回值 (Return Value) 创建此匹配器的模式。 例子 (Example) 以下示例显示了java.time.M
1、观察者模式是一种一对多的依赖关系,让多个观察者同时监听某一主题对象。当这个主题对象发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 2、JAVA提供的对观察者模式的支持 在JAVA语言的java.util库里面,提供了一个Observable类以及一个Observer接口,构成JAVA语言对观察者模式的支持。 (1)Observer接口 这个接口只定义了一个方法,即update()方
描述 (Description) 您可以通过向其传递参数来更改mixin的行为。 考虑一个简单的LESS代码片段 - .mixin(@a; @color) { ... } .line { .mixin(@color-new; #888); } 您可以使用@ color-new的不同值来制作不同的mixin行为,如下面给出的代码所示。 .mixin(dark; @color) { co
pattern属性规定用于验证输入内容的正则表达式,要求用户必须按正则表达式的规则输入信息,防止输入错误。text、search、url、telephone、email、password等类型的文本输入框都支持pattern属性。如,这个文本框要求用户必须输入数字。 <input name="pattern" type="text" pattern="[0-9]"/> 提交表单时,如果用户输入的
描述 (Description) java.util.regex.Pattern.pattern()方法返回编译此模式的正则表达式。 声明 (Declaration) 以下是java.util.regex.Pattern.pattern()方法的声明。 public String pattern() 返回值 (Return Value) 这种模式的来源。 例子 (Example) 以下示例显示了