Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #37160

Re: Is this a correct implementation of an abstract class and implementation class

Path csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From Cecil Westerhof <Cecil@decebal.nl>
Newsgroups comp.lang.java.programmer
Subject Re: Is this a correct implementation of an abstract class and implementation class
Date Sun, 13 Aug 2017 07:14:45 +0200
Organization Decebal Computing
Lines 64
Message-ID <87a834xd4q.fsf@munus.decebal.nl> (permalink)
References <87r2wgxz2p.fsf@munus.decebal.nl> <omobrn$mvm$1@gioia.aioe.org>
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 8bit
Injection-Info mx02.eternal-september.org; posting-host="1615173a1409002a85fbdd25ac4b9ead"; logging-data="17580"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX181RmdZTQHe6uYxY2KDKjhQNZzSMkf2xIM="
User-Agent Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)
Cancel-Lock sha1:NTjI5GWTGMDuhSDVIT7Gmk3mxKQ= sha1:K55GDaNmou2+BcAvzcvN98/eie0=
X-Homepage http://www.decebal.nl/
Xref csiph.com comp.lang.java.programmer:37160

Show key headers only | View raw


Arne Vajhøj <arne@vajhoej.dk> writes:

> On 8/12/2017 5:20 PM, Cecil Westerhof wrote:
>> I want to write a layer around JDBC. For this I have an abstract class
>> SQL in which I have the following constructor and abstract methods:
>>      // ################ constructors
>>      public SQL (String database) throws SQLException {
>>          String forName   = getForName();
>>          String sqlDriver = getSQLDriver();
>>
>>          try {
>>              Class.forName(forName);
>>          } catch (ClassNotFoundException e) {
>>              throw new SQLException("Could not find the class " + forName + ".");
>>          }
>>          conn = DriverManager.getConnection(sqlDriver + database);
>>          this.database = database;
>>      }
>>
>>      // ################ abstract
>>      abstract String getForName();
>>      abstract String getSQLDriver();
>>
>>
>> I have also an implementation class SQLite3 in which I have:
>>      // ################ constructors
>>      public SQLite3 (String database) throws SQLException {
>>          super(database);
>>      }
>>
>>      // ################ default
>>      @Override
>>      String getForName() {
>>          return "org.sqlite.JDBC";
>>      }
>>
>>      @Override
>>      String getSQLDriver() {
>>          return "jdbc:sqlite:";
>>      }
>>
>> Is this the correct way to do this, or is there a better way?
>
> I have done something similar many times.
>
> I like the approach.

Thank you.


> I assume you are aware that with newer Java versions then
> Class.forName is not required.

Not, I was not. I removed it.


> And I would rename getSQLDriver to getURLPrefix.

Good tip: done.

-- 
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Is this a correct implementation of an abstract class and implementation class Cecil Westerhof <Cecil@decebal.nl> - 2017-08-12 23:20 +0200
  Re: Is this a correct implementation of an abstract class and implementation class Arne Vajhøj <arne@vajhoej.dk> - 2017-08-12 22:00 -0400
    Re: Is this a correct implementation of an abstract class and implementation class Cecil Westerhof <Cecil@decebal.nl> - 2017-08-13 07:14 +0200
    Re: Is this a correct implementation of an abstract class and implementation class Andreas Leitgeb <avl@logic.at> - 2017-08-13 09:37 +0000
      Re: Is this a correct implementation of an abstract class and implementation class Andreas Leitgeb <avl@logic.at> - 2017-08-13 10:13 +0000
        Re: Is this a correct implementation of an abstract class and implementation class Arne Vajhøj <arne@vajhoej.dk> - 2017-08-13 16:27 -0400
      Re: Is this a correct implementation of an abstract class and implementation class lewbloch@gmail.com - 2017-08-13 09:49 -0700
      Re: Is this a correct implementation of an abstract class and implementation class Arne Vajhøj <arne@vajhoej.dk> - 2017-08-13 16:25 -0400
  Re: Is this a correct implementation of an abstract class and implementation class Cecil Westerhof <Cecil@decebal.nl> - 2017-08-13 07:33 +0200

csiph-web