© 2013 All rights reserved.
2

Hodnota proměnné v metodě

Občas narazíte na situaci, kdy potřebujete získat z metody hodnotu proměnné, kterou ale nemůžete vrátit pomocí return, například kvůli dalšímu zpracování kódu.

S těmito třemi případy jsem se setkal, který je podle vás nejlepší, nebo jaký způsob používáte vy?

1. Reference (WTF?)

  • nutnost definovat další proměnnou před voláním metody!
  • nepřehledý kód!

2. veřejná proměnná

  • nepřehledý kód!
  • proměnná musí být veřejná!

3. Get metoda

Tento posledni příklad by bylo možné samozřejmě doplnit ještě o setovací funkci (zapoznámkovaná SetAffectedColumns), ale to je v tomto případě zbytečné, protože by metoda stejně nemohla být veřejná.

Comments are closed for this page

"kterou ale nemůžete vrátit pomocí return, například kvůli dalšímu zpracování kódu"

Tohle moc nechápu. V PHP (ale i v dalších jazycích) přeci není problém vrátit returnem víc hodnot a následně upravit volající, aby dodatečné hodnoty ignorovali či využívali. Jediný případ, kdy volající obvykle upravit nejdou, je v případě veřejné knihovny či jiného veřejného API – máte na mysli tento případ? I v takové situaci mi ale přijde správnější vytvořit novou variantu API a staré označit za deprecated.

Já bych volil 3. Podle mě není moc objektové vracet pole o n různých hodnotách, které budu dál používat. Navíc se podle mě jedná o stavovou informaci. Pokud by si s tím objektem něco dělal, pak pravděpodobně není žádoucí vykonávat znovu danou operaci, jen aby si zjistil affected columns. Druhá variant v podstatě taky není špatně, ale z mého pohledu "bad habit". Tento problém je možná až moc triviální, ale ještě mě napadlo, jestli na podobnou věc se nedá aplikovat nějaký pattern.

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836