Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!feeder2.ecngs.de!ecngs!feeder.ecngs.de!Xl.tags.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!local2.nntp.ams.giganews.com!nntp.saix.net!news.saix.net.POSTED!not-for-mail NNTP-Posting-Date: Tue, 20 Dec 2011 08:47:58 -0600 Newsgroups: comp.lang.java.programmer Subject: Re: Design Question References: <4eee8447$0$291$14726298@news.sunsite.dk> From: ilAn Date: Tue, 20 Dec 2011 16:47:57 +0200 Message-ID: User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (darwin) Cancel-Lock: sha1:WefUfKVEUR5l1DgeIzgkbRbCrtg= MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Forwarded: by - (DeleGate/9.9.1) Lines: 30 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-mexxTUMssMn+RA7tPe3HYhxue1PDOJAObBFUgL8oHPqkf3Mq/mx7tyK0GqidJdOor7NdWfXlVA5JxFw!2juYfMSQ+K4xA5TGwZ8LCqDhOYUKOmgQsiPQU4u3U+o9FJRYIJhi2zTORLo= X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 2441 Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:10895 Arne Vajhøj writes: > On 12/18/2011 7:13 PM, Novice wrote: >> >> Am I right in thinking that I should actually have an abstract class, maybe >> called AbstractScore, and that it should have two subclasses, Interim Score >> and FinalScore? AbstractScore could have all of the "common code" in it >> while InterimScore and FinalScore could each do the stuff that was unique >> to itself, like setting the Title appropriately, setting the text of the >> button, and reacting to the appropriate button in actionPerformed(). In >> other words, the actionPerformed() in InterimScore would only react to Quit >> while the actionPerformed() in FinalScore would only react to Exit. Then, >> my game should instantiate InterimScore during the game and FinalScore when >> the user wants to end the game. >> >> Or is there a better way? > > The abstract class with two sub classes must be the OO way. Or you could consider the user of an interface, two classes that implement that interface - and a factory class that returns the correct one. You should pass some kind of object to the factory class, maybe in the constructor; from which it can work out what type of class to return. (Maybe the Game itself as a class/interface.) This would allow you to add other types of class that implement the interface for scenarios you have not yet imagined. -- ilAn