Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #9527
| From | Daniel Pitts <newsgroup.nospam@virtualinfinity.net> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Abstract Class versus an Interface, when no Members in Common |
| References | <22857359-211e-443e-9c5d-6cc2f5bd971b@m19g2000vbm.googlegroups.com> |
| Message-ID | <3iYsq.9363$zi2.7579@newsfe10.iad> (permalink) |
| Date | 2011-11-04 13:54 -0700 |
On 11/3/11 4:09 PM, KevinSimonson wrote:
> I have a method that needs to be able to return either of two very
> different types of data, in one case a class consisting of a two-
> dimensional array of<int>s accompanied by a single<byte> value, and
> in the other case just a one-dimensional array of<int>s and that's
> all. So I created an abstract class called<SearchResult> that has no
> members, not even any constructors, and made two classes extend
> <SearchResult>, the one class having the two-dimensional array and the
> <byte> value, and the other having the one-dimensional array. Then I
> have my method return a value of<SearchResult>.
>
> My question is, in a situation like this where there are absolutely no
> variables or methods the two classes have in common, is it better to
> have an abstract class that both classes extend, or is it better to
> have an interface that both classes implement? Or is there any
> difference between the two approaches?
>
> Kevin Simonson
Sounds almost like you want a visitor pattern instead, or an
intermediate object:
public class SearchResult {
public boolean isSingleArray() { ... }
public boolean isMultipleArray() { ... }
// Throws IllegalStateException if !isSingleArray
public SingleArray getSingleArray() { ... }
// Throws IllegalStateException if !isMutipleArray
public MultipleArray getMultipleArray() { ... }
}
Alternatively, or conjointly, you can use the visitor pattern.
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar
Abstract Class versus an Interface, when no Members in Common KevinSimonson <kvnsmnsn@hotmail.com> - 2011-11-03 16:09 -0700
Re: Abstract Class versus an Interface, when no Members in Common Arne Vajhøj <arne@vajhoej.dk> - 2011-11-03 19:32 -0400
Re: Abstract Class versus an Interface, when no Members in Common markspace <-@.> - 2011-11-03 17:37 -0700
Re: Abstract Class versus an Interface, when no Members in Common Lew <lewbloch@gmail.com> - 2011-11-03 18:10 -0700
Re: Abstract Class versus an Interface, when no Members in Common markspace <-@.> - 2011-11-03 18:46 -0700
Re: Abstract Class versus an Interface, when no Members in Common Roedy Green <see_website@mindprod.com.invalid> - 2011-11-03 22:06 -0700
Re: Abstract Class versus an Interface, when no Members in Common Ian Pilcher <arequipeno@gmail.com> - 2011-11-04 00:06 -0500
Re: Abstract Class versus an Interface, when no Members in Common Robert Klemme <shortcutter@googlemail.com> - 2011-11-04 17:57 +0100
Re: Abstract Class versus an Interface, when no Members in Common Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-11-04 13:54 -0700
Re: Abstract Class versus an Interface, when no Members in Common Wanja Gayk <brixomatic@yahoo.com> - 2011-11-08 23:15 +0100
Re: Abstract Class versus an Interface, when no Members in Common Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-11-08 20:58 -0800
Re: Abstract Class versus an Interface, when no Members in Common Roedy Green <see_website@mindprod.com.invalid> - 2011-11-04 15:17 -0700
Re: Abstract Class versus an Interface, when no Members in Common Wanja Gayk <brixomatic@yahoo.com> - 2011-11-08 23:13 +0100
csiph-web