工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛,就大量使用了工厂模式,工厂模式在java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如Aa=newA()工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。
工厂模式用于创建对象时,有简单工厂,工厂方法、抽象工厂。
简单工厂:由一个工厂对象决定创建哪个实例的对象。简单工厂适用于创建对象少的场景,客户端只需要传入参数,对于如何创建不用关心。
缺点:工厂类职责过重,不易于扩展复杂结构的实例对象,不符合开闭原则。
工厂方法:是指定义一个创建对象的接口,各个不同对象都有分别的工厂类来实现,让实例化这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。
在工厂方法模式中,用户只需关注创建的
对象在哪个工厂中,不需知道创建细节,符合开闭原则。
抽象工厂:是指提供一个创建一系列相关或相互依赖的对象的接口,适合使用与类似于二维的、比较复杂的场景。比如场景可分为产品族、产品等级结构两个维度的场景。
将两个维度的相关类分别创建接口,并分别实现。每个产品族都需要一个工厂。
优点:很清晰的描述了这样复杂场景。
缺点:不符合开闭原则、增加了系统的抽象性与理解难度。(只要不是系统频繁升级,可以不满足开闭原则。比如隔半年、一年
应用:在JDBC连接数据库时就用到了抽象工厂,之前在每次使用时都要创建数据库连接,每次创建都十分耗费性能,影响业务调用时间。用了之后,它将数据
库连接创建好之后放到缓存中缓存者,在每次业务调用时只需现取现用。
工厂模式中有:工厂方法(FactoryMethod)抽象工厂(AbstractFactory).
这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,如上面工厂方法中是创建一个对象Sample,如果我们还有新的产品接口Sample2.
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。
同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言"编写一次,处处运行"的优势。
Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。
JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。