Java设计模式之Builder Pattern
学习笔记 : Java设计模式之Builder Pattern概述缔造者设计模式 : 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示( Builder Pattern : Separate the construction of complex object from its representation so that the same construction process can create different representations )
扩 : 建造者模式是一种对象创建型模式,它将客户端与包含多个部件的复杂对象的创建过程分离,客户端无需知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可.
建造者设计模式中的角色
Builder( 抽象建造者 ) : 它为创建一个产品的各个部件指定抽象接口,在该接口中一般声明两类方法,一类方法是 buildPartX(),其用于创建复杂对象的各个部件. 另一类方法是 getResult(),其用于返回复杂对象. Builder 即可是抽象类,也可以是接口.
ConcreteBuilder ...
Java设计模式之Facade Pattern
学习笔记 : Java设计模式之Facade Pattern概述为子系统中的一组接口提供一个统一的入口. 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. ( Facade Pattern : Provide a unified interface to a set of interfaces in a subsystem. Facade defines a highter-level interface that makes the subsystem easier to use. )
扩 : 外观模式又称门面模式,它是一种对象结构型模式. 外观模式是迪米特法则的一种具体实现,通过引入一个新的外观角色来降低原有系统的复杂度,同时降低客户类与子系统的耦合度.
外观设计模式中使用的角色
Facade( 外观角色 ) : 在客户端可以调用它的方法,在外观角色中知道相关的( 一个或多个 )子系统的功能和责任. 在正常情况下,它将所有从客户端发来的请求委派到相应的子系统,传递给相应的子系统对象处理.
SubSystem( 子系统角色 ) : 在软件系统中有一个或者多个子系统 ...
Java设计模式之Composite Pattern
学习笔记 : Java设计模式之Composite Pattern概述组合设计模式 : 组合多个对象形成树形结构以表示具有部分-整体关系的层次结构. 组合模式让客户端可以统一对待单个对象和组合对象. (Composite Pattern : Compose objects into tree structures to pepresent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uninformly.)
扩 : 组合模式又称部分-整体( Part-Whole )模式,属于对象结构型模式,它将对象组织到树形结构中,可以用来描述整体与部分的关系
组合模式中的角色
Component( 抽象构件 ) : 它可以是接口或抽象类,为叶子构件和容器构件对象声明接口,在该角色中可以包含所有子类共有行为的声明和实现. 在抽象构件中定义了访问及管理它的子构件的方法,如增加,删除,获取子构件等.
Leaf( 叶子构件 ) : 它在组合结构中表示 ...
Java继承与委托中的一致性
学习笔记 : Decorator Pattern的延伸阅读-继承与委托中的一致性继承-父类和子类的一致性父类和子类具有一致性,示例代码如下所示 :
12345678910111213class Parent { ··· void parentMethod(){ ··· }}class Child extends Parent { ··· void childMethod(){ ··· }}
此时,Child类的实例可以被保存在 Parent 类型中的变量中,所以可以调用从 Parent 类中继承的方法,也就是说,可以像操作 Parent 类的实例一样操作 Child 类的实例. 如下是将子类当做父类看待的示例代码~
12Parent obj = new Child();obj.parentMethod();
相反,如果想将父类当做子类一样操作,则需要先进行类型转换哟~
12Parent obj = new Child();((Child)o ...
Java设计模式之Decorator Pattern
学习笔记 : Java设计模式之Decorator Pattern概述装饰设计模式( 对象结构型模式 )是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系. 装饰设计模式的定位为 : 动态地给一个对象增加一些额外的职责. 就扩展而言,装饰模式提供了一种比使用子类更加灵活的替代方案. ( Decorator Pattern : Attach additonal responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality )
装饰设计模式中的角色
Component ( 抽象构件 ) : 它是具体构件和抽象装饰类的共同父类,声明了在具体构件中实现的业务方法,它的引入可以使客户端以一致的方式处理未被装饰的对象及装饰之后的对象,实现客户端的透明操作.
ConcreteComponent ( 具体构件 ) : 它是抽象构件类的子类,用于 ...
Java设计模式之Abstract Factory Pattern
学习笔记 : Java设计模式之Abstract Factory Pattern概述工厂方法模式通过引入工厂等级结构解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中每个具体工厂只有一个或一组重载的工厂方法,既只能生产一种产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销. 抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形式. 抽象工厂模式与工厂方法模式的最大区别在于 : 工厂方法模式针对的是一个产品等级结构,而抽象工厂模式需要面对多个产品等级结构,一个工厂等级结构可以负责多个不同产品等级结构中的产品对象的创建. 当一个工厂等级结构可以创建出分属于不同产品等级结构的一个产品族中的所有对象时,抽象工厂模式比工厂方法模式更加简单,更有效率~ 抽象工厂模式的定义为 : 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类( Abstract Factory Pattern : Provide an interface for creating families of related or dependent objects without s ...
Java设计模式之Singleton Pattern
学习笔记 : Java设计模式之Singleton Pattern概念单例设计模式 : 确保一个类只能有一个实例,并提供一个全局访问点来访问这个实例. (Singleton Pattern : Ensure a class has only one intance,and provide a global point of access to it. ). 单例设计模式是一种对象创建型模式,其主要有三个要点 :
某个类只能有一个实例
必须自行创建这个实例
必须自行向系统提供这个实例
示例程序-饿汉式单例饿汉式单例类( Eager Singleton )是最简单的单例类,既类被加载时静态变量 instance 就会被初始化,程序示例如下所示 :
12345678910111213141516171819202122package pers.huangyuhui.singleton_pattern.eager_singleton;/** * @project: design-patterns * @description: 单例模式-饿汉式单例类 * @author: 黄宇辉 * @d ...
Java设计模式之Simple Factory Pattern
学习笔记 : Java设计模式之Simple Factory Pattern概述简单工厂模式( Simple Factory Pattern) : 定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类. 其是一种创建型模式,需注意 : 简单工厂模式并不属于23种经典设计模式,但通常将它作为学习其他工厂模式的基础.
简单工厂模式中的角色
Factory( 工厂角色 ) : 工厂角色既工厂类,它是简单工厂模式的核心,负责实现创建所有产品实例的内部结构. 工厂类可以被外界访问直接调用,创建所需的产品对象. 在工厂类中提供了静态的工厂方法,其返回类型为抽象产品类型.
Product( 抽象产品角色 ) : 它是工厂类创建的所有对象的父类,封装了各种对象的公有方法,它的引入提高了系统的灵活性.
ConcreteProduct( 具体产品角色 ) : 它是简单工厂模式的创建目标,所有被创建的对象都充当这个角色的某个具体类的实例. 每一个具体产品角色都继承了抽象产品角色,需要实现在抽象产品中的抽象方法.
程序示例下面是一个使用简单工厂模式的简单程序示例,其功能( ...
Java设计模式之Factory Method模式
学习笔记 : Java设计模式之Factory Method模式概述工厂方法模式 : 定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化. 工厂方法模式让一个类的实例化延迟到其子类. ( Factory Method Pattern : Definde an interface for creating an object,but let subclasses decides which class to instantiate. Factory Method lets a class defer instantiation to sublclasses )
工厂方法模式是简单工厂模式的延伸,它继承了简单工厂模式的优点,同时还弥补了简单工厂模式的缺陷,使其更好地符合开闭原则的要求. 工厂方法模式简称为工厂模式( Factory Pattern ),又可称为虚拟构造器模式( Virtual Constructor Pattern )或多态工厂模式( Polymorphic Factory Pattern ). 其为一种类创建型模式哟 ~
Factory Method模式中的角 ...
一个简单的JDBC基础模板
学习笔记 : 一个简单的JDBC基础模板最近在 GitHub 上又结识了一个小伙伴,看他最近在学习 JDBC 方面的知识,看到他所写的代码让我顿时回忆起自己初学编程的自己,所以想帮帮他,继而把前些日子写的 JDBC 基础模板整理了一下并给他提了一个 PR,详情请参考 : https://github.com/qinjiajuny/JDBCLearning/pull/4
tb_user : 用户信息数据表
12345678910111213-- auto-generated definitioncreate table tb_user( id int auto_increment primary key, name varchar(10) null, age int null, gender char(2) null, password varchar(15) null, telephone varchar(11) null, birthday date nul ...