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


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

Re: proper use of .java files (layout)

Date 2012-12-18 14:05 +0000
From lipska the kat <lipskathekat@yahoo.co.uk>
Newsgroups comp.lang.java.programmer
Subject Re: proper use of .java files (layout)
References (2 earlier) <20fa5c05-6fcc-47ed-9e80-a44975887928@googlegroups.com> <kao263$pll$1@dont-email.me> <OOD-20121218050239@ram.dialup.fu-berlin.de> <9_6dnbVv5aTwoU3NnZ2dnUVZ8kOdnZ2d@bt.com> <pJ-dnQJkvP9a9k3NnZ2dnUVZ8o2dnZ2d@bt.com>
Message-ID <R7WdnReD0tjX5U3NnZ2dnUVZ8iadnZ2d@bt.com> (permalink)

Show all headers | View raw


On 18/12/12 13:09, Chris Uppal wrote:
> lipska the kat wrote:
>
> Just want to point out that your OO "modelling" here is making quite a few
> asumptions about what kind of game we are going to want to play with the cards.
> I'm not saying that's a bad thing, but it could /get/ bad if you were doing it
> without being aware of it.

Not sure why you chose to put the word "modelling" in inverted commas, 
let's just assume that you were highlighting the process. Anyway, it's 
OK to make assumptions, that's how we progress.

Everything you mention below are rules, they do not impact in any way 
whatsoever the abstractions of Card, Pack, Deck, Dealer shuffle, deal or 
make the tea

> For instance:
>
>      Can cards be marked as part of the game ?  (Legaloloy, I mean -- for
> instance "cheating" might be allowed as part of the game)

This is a rule of the game, you are modelling the game, not the 
abstractions you will use to play it, a markable card simply extends 
Card and will be a new class, say,  MarkableCard extends Card, you are 
going through the "modelling" process in front of your very eyes.

>
>      If we have>  1 pack, are the two 2 of Hearts considered /identical/, or are
> they distinguished in some way ?  (Perhaps by the colours of the backs of the
> cards).

Again a rule of the game, nothing to do with the top level abstractions. 
If during the modelling process you discover you need to invent a new 
Class to deal with some situation that makes the original abstraction 
unworkable then invent something, just make sure to keep the UML up to 
date :-)


>      Can new packs be added to the game as it is played ?

Rule, no impact on the top level abstractions

>
>      Can cards be destroyed (taken out of the game) as it is played ?

ditto

>
>      Are there rules about who should shuffle and when ?

A 'rule' you said it yourself

>
>      Are there rules about who should deal and when ?

rule

>
>      Can the rules change (evolve) at "run time" ?

A meta rule no less;

>
> Put it another way: you can't safely design an abstraction without knowing what
> the abstraction is going to be used /for/.  Which is in support of Stefan's
> point:

But we do know what it/they is/are going to be used for, a game of 
cards. A pack of cards is static. It's a well known and understood 
concept that most humans can grasp. I don't care what game you are 
playing a pack of card is a pack of cards. End of. Why cloud your 
thinking. to use a favourite 'bulls**it' bingo phrase, Abstract the 
[Cards] away from the problem space. Park them, assume you have them, 
develop stubs, do whatever you have to do to remove the need to worry 
about a Pack of Cards from your thinking ... Do the same for Deck and 
Dealer, write an interface with method stubs, write code, reiterate, 
challenge your assumptions.

When I start on a new problem I usually start writing code by the end of 
the first day, even if it's just getting some package names down with a 
bunch of empty classes that I think might help me to solve the problem. 
Often (more often than you might think) the problem hasn't even been 
fully defined when I start, in fact the definition changes as I go 
along. As I model part of the system, questions arise. When I put those 
questions to the stakeholders I often get 'oh I hadn't thought of that' 
and a new facet of the problem becomes apparent. If I waited until I had 
all the answers I'd be living in a cardboard box outside Liverpool 
Street station

OO is hard. Getting those first few abstractions is often the hardest 
part of all.

>
>>   I do not like the idea of designing a card game /before/
>>   I know exactly /which/ card game it is at all.
>
> even though I don't at all agree with his idea of starting in a procedureal
> mode then switching to OO later (in fact I wouldn't be /able/ to do things his
> way -- I find classic procedural code a lot harder to think about and/or create
> than the OO kind).

The bottom line is you need to tease out the rules or the 'how' from the 
'what' or, in our case the classes that will be used to implement the 
concept. It's quite straightforward once you get the hang of it. ;-)

lipska

-- 
Lipska the Kat©: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun

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


Thread

proper use of .java files (layout) infinitum3d@hotmail.com - 2012-12-16 07:38 -0800
  Re: proper use of .java files (layout) Robert Klemme <shortcutter@googlemail.com> - 2012-12-16 16:43 +0100
  Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-16 10:50 -0500
    Re: proper use of .java files (layout) "John B. Matthews" <nospam@nospam.invalid> - 2012-12-16 16:25 -0500
  Re: proper use of .java files (layout) markspace <-@.> - 2012-12-16 08:24 -0800
    Re: proper use of .java files (layout) Lew <lewbloch@gmail.com> - 2012-12-17 10:28 -0800
      Re: proper use of .java files (layout) markspace <-@.> - 2012-12-17 13:17 -0800
        Re: proper use of .java files (layout) Lew <lewbloch@gmail.com> - 2012-12-17 13:51 -0800
        Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-17 20:55 -0500
          Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-17 18:18 -0800
            Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-17 21:28 -0500
              Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-17 21:10 -0800
                Re: proper use of .java files (layout) Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-18 08:53 -0500
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-18 09:13 -0800
                Re: proper use of .java files (layout) Patricia Shanahan <pats@acm.org> - 2012-12-18 09:23 -0800
                Re: proper use of .java files (layout) Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-18 13:49 -0500
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-18 15:05 -0800
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-18 20:11 -0500
                Re: proper use of .java files (layout) Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-18 21:07 -0500
                Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-19 09:33 +0000
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-19 10:12 -0800
                Re: proper use of .java files (layout) Lew <lewbloch@gmail.com> - 2012-12-19 13:35 -0800
                Re: proper use of .java files (layout) Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-12-19 15:55 -0600
                Re: proper use of .java files (layout) Lew <lewbloch@gmail.com> - 2012-12-19 14:01 -0800
                Re: proper use of .java files (layout) Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-12-19 16:05 -0600
                Re: proper use of .java files (layout) Patricia Shanahan <pats@acm.org> - 2012-12-19 04:06 -0800
                Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-19 12:24 +0000
                Re: proper use of .java files (layout) Lew <lewbloch@gmail.com> - 2012-12-19 13:36 -0800
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-18 20:10 -0500
                Re: proper use of .java files (layout) Joshua Cranmer <Pidgeot18@verizon.invalid> - 2012-12-18 12:14 -0600
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-18 20:04 -0500
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-19 10:14 -0800
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-19 19:18 -0500
                Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-20 11:05 +0000
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-27 21:43 -0500
                Re: proper use of .java files (layout) Lew <lewbloch@gmail.com> - 2012-12-27 18:49 -0800
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-27 22:10 -0500
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-20 09:01 -0800
                Re: proper use of .java files (layout) Patricia Shanahan <pats@acm.org> - 2012-12-20 09:30 -0800
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-20 13:35 -0800
                Re: proper use of .java files (layout) Patricia Shanahan <pats@acm.org> - 2012-12-20 14:00 -0800
                Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-21 08:58 +0000
                Re: proper use of .java files (layout) Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-12-21 10:36 -0800
                Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-21 18:43 +0000
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-27 22:05 -0500
                Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-28 09:57 +0000
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-27 21:59 -0500
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-27 21:53 -0500
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-27 21:54 -0500
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-27 21:48 -0500
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-27 21:11 -0800
                Re: proper use of .java files (layout) "John B. Matthews" <nospam@nospam.invalid> - 2012-12-28 06:50 -0500
                Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-28 13:46 +0000
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-28 09:10 -0800
        Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-18 09:50 +0000
          Re: proper use of .java files (layout) "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2012-12-18 13:09 +0000
            Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-18 14:05 +0000
        Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-25 15:06 -0800
        Re: proper use of .java files (layout) Patricia Shanahan <pats@acm.org> - 2012-12-26 06:31 -0800
          Re: proper use of .java files (layout) Lew <lewbloch@gmail.com> - 2012-12-26 13:21 -0800
            Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-26 23:38 -0500
            Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-27 08:37 +0000
            Re: proper use of .java files (layout) Robert Klemme <shortcutter@googlemail.com> - 2012-12-27 11:51 +0100
              Re: proper use of .java files (layout) Patricia Shanahan <pats@acm.org> - 2012-12-27 08:46 -0800
                Re: proper use of .java files (layout) Robert Klemme <shortcutter@googlemail.com> - 2012-12-27 18:20 +0100
              Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-27 20:48 -0500
      Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-17 20:58 -0500
        Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-17 18:22 -0800
          Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-17 21:39 -0500
        Re: proper use of .java files (layout) Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-17 21:25 -0500
          Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-17 21:29 -0500
            Re: proper use of .java files (layout) Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-17 21:32 -0500
              Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-17 21:37 -0500
                Re: proper use of .java files (layout) Wayne <nospam@all.invalid> - 2012-12-18 18:45 -0500
                Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-18 20:13 -0500
  Re: proper use of .java files (layout) infinitum3d@hotmail.com - 2012-12-16 09:23 -0800
  Re: proper use of .java files (layout) infinitum3d@hotmail.com - 2012-12-16 21:07 -0800
  Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-17 10:32 +0000
    Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-17 21:03 -0500
      Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-18 09:34 +0000
        Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-18 20:00 -0500
        Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-18 20:01 -0500
  Re: proper use of .java files (layout) infinitum3d@hotmail.com - 2012-12-18 06:32 -0800
    Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-18 15:05 +0000
      Re: proper use of .java files (layout) Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-18 11:07 -0500
        Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-18 16:27 +0000
          Re: proper use of .java files (layout) Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-18 11:44 -0500
            Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-18 17:21 +0000
          Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-18 09:21 -0800
            Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-18 17:39 +0000
              Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-18 10:40 -0800
                Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-18 19:05 +0000
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-18 15:15 -0800
              Re: proper use of .java files (layout) Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-18 14:12 -0500
                Re: proper use of .java files (layout) lipska the kat <lipskathekat@yahoo.co.uk> - 2012-12-18 19:39 +0000
                Re: proper use of .java files (layout) Gene Wirchenko <genew@telus.net> - 2012-12-18 15:17 -0800
        Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-18 20:07 -0500
          Re: proper use of .java files (layout) Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-18 21:11 -0500
            Re: proper use of .java files (layout) Arne Vajhøj <arne@vajhoej.dk> - 2012-12-18 22:24 -0500
    Re: proper use of .java files (layout) markspace <-@.> - 2012-12-18 10:35 -0800

csiph-web