eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingkwestia estetycznaRe: kwestia estetyczna
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!cat.tac
    !not-for-mail
    From: Wojciech Muła <w...@p...null.onet.pl.invalid>
    Newsgroups: pl.comp.programming
    Subject: Re: kwestia estetyczna
    Date: Sun, 7 Aug 2011 00:49:00 +0200
    Organization: http://0x80.pl
    Lines: 68
    Message-ID: <2...@c...tac>
    References: <j1f3om$2bsb$1@news.mm.pl>
    NNTP-Posting-Host: public94241.xdsl.centertel.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: quoted-printable
    X-Trace: news.onet.pl 1312672251 14611 188.47.240.33 (6 Aug 2011 23:10:51 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Sat, 6 Aug 2011 23:10:51 +0000 (UTC)
    X-Newsreader: Claws Mail 3.7.9 (GTK+ 2.24.5; i486-pc-linux-gnu)
    Xref: news-archive.icm.edu.pl pl.comp.programming:191722
    [ ukryj nagłówki ]

    On Thu, 4 Aug 2011 23:40:37 +0200 <g...@h...com> wrote:

    > Witam,
    >
    > Czy taka konstrukcja narusza jakieś zasady/sty dobrego projektowania
    > lub jeszcze innego wzorca projektowego? Chodzi mi o drabinkę if..else
    >
    > if (preserveR)
    > {
    > if (oldW >= oldH && !fit)
    > {
    > if (!onlyG || width < oldW)
    > {
    > newW = width;
    > newH = (oldH * newW) / oldW;
    > }
    > }
    > else if (!fit)
    > {
    > if (!onlyG || height < oldH)
    > {
    > newH = height;
    > newW = (oldW * newH) / oldH;
    > }
    > }
    > else
    > {
    > //...
    > }
    > }
    > else
    > {
    > newW = width;
    > newH = height;
    > }

    Hm, ja bym to raczej napisał tak:

    if (preservedR) {
    const bool sH = oldW >= oldH and not fit and (not onlyG or width < oldW);
    const bool sW = not fit and (not onlyG or height < oldH);
    if (sH) {
    newW = width;
    newH = (oldH * newW) / oldW;
    }
    else if (sW) {
    newH = height;
    newW = (oldW * newH) / oldH;
    }
    else
    ...
    }
    else
    ...


    Kiedyś, przy bardziej "dzikiej" logice sterowania, gdzie warunków było
    niewiele, jednak różnych kombinacji sporo, to najpierw kodowałem
    każdy warunek na osobnym bicie, a później instrukcją switch
    obsługiwałem kombinacje. W stosunku do wersji z if/else było 10x lepiej.

    w.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: