java中的单态类,单态模式

来源:互联网 发布:网络语zqsg的意思 编辑:程序博客网 时间:2024/05/16 02:38

/** *  * 饿汉式单态类(不管有没有其他类调用该类,或者说不管有没有其他类使用该类,内部都已经创建了god对象,[说通俗一点就是急的不行,所以叫做饿汉式单态类]) * 还有一个懒汉式单态类(也就是懒惰的) */public class God {//static表示唯一的(饿汉式,急的不行,先new创建对象再说,不管有没有其他类调用该类)private static God god = new God();/** * 把构造方法定义为private的,表示只有自己内部可以访问,外部无法访问(即外面无法通过new关键字创建该对象) */private God() {super();}/** * 静态方法返回自己的实例 *  */public static God getGod() {return god;}}
/** *  * 懒汉式单态类 */public class LazyGod {//懒汉式(先不创建对象,等要用到的时候再new创建对象)private static LazyGod lazyGod = null; private LazyGod() {super();}/** *  * 需要添加synchronized关键字,如果是多线程的程序的话,可以防止创建多个lazyGod对象,所以需要添加synchronized关键字 */public synchronized static LazyGod getLazyGod() {if(lazyGod == null){lazyGod = new LazyGod();}return lazyGod;}}

/** * *  数据库配置信息 */public interface DBConfig {public  static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";public  static final String URL = "jdbc:sqlserver://localhost:1433;databaseName=testDB";public  static final String USERNAME = "sa";public  static final String PASSWORD = "123456";}

/** * 单态数据库连接类(其实这不是严格意义上的单态连接类,因为用户还是可以通过DriverManager.getConnection()方法来得到 * conn对象,所以我们写的SingletonConnection这个类算是个伪单态类吧 * ) */public class SingletonConnection {private static Connection conn = null;private SingletonConnection() {super();}/** *  * 需要添加synchronized关键字,如果是多线程的程序的话,可以防止创建多个Connection对象,所以需要添加synchronized关键字 */public synchronized static Connection getConnection() throws ClassNotFoundException, SQLException {if (conn == null) {Class.forName(DBConfig.DRIVER);conn = DriverManager.getConnection(DBConfig.URL, DBConfig.USERNAME, DBConfig.PASSWORD);}return conn;}/* (non-Javadoc) * @see java.lang.Object#finalize() * 重写父类Object类finalize()方法,在对象销毁的时候会自动调用该方法(类似于C++语言中的析构方法) */@Overrideprotected void finalize() throws Throwable {if (conn != null) {conn.close();conn = null;}}}



1 0
原创粉丝点击