Design Issue

3 отговора 243 прегледа
#1

Design Issue

Значи пиша тука едни истории. Ама дойде един момент дето нещо дизайна на класовете не ми харесва. Някво елементарно е, но се ровя и нещо не ми "изкача" подходящо решение.

та значи имаме обект от class Table
class Table {
somekindofcollection Rows;

public addRow(row) {
add-ва в колекцията
}
public Dosomething() {
foreach Rows.do();
}
}

само че в Row ми трябва някой метод на Table примерно
class Row {
public do() {
return 'blabla'+table.getName();
}
}

Направих го аз, като при добавяне на нов Row. Правя нещо от рода на
row.setTable(this);. Но не ми харесва нещо, а и като станат повече от 2 нивата трябва 2 референции да се предават и т.н .

Та ако някой е успял да ме разбере да предложе по изчистено решение :)Мерси предварително

Отговор
в отговор на threed #2

Re: Design Issue

да и аз съм имал подобни проблеми, но не съм стигнал до кой знае какви проблясъци.

един вариант е метода "ду" да отиде в табле-то, но не е гот.

а тва за няколкото нива - примерно освен ред имаш и някъв клас за елемент - тогава е добре от елемента да имаш референс към реда и от реда към таблицата - като линеен списък.

Отговор
в отговор на threed #3

Re: Design Issue

Kakvo e tui 'do' v class Row (tuka mi namirisva na propuskane na agent class) i kakvi adjeba sa tezi 2-ri niva, etc.? Dai primer, kaji kakvo se opitvash da napravish, ta dala uspeem da pomognem.

btw, addRow e kofti, az bih predpochel metod add v Rows property-to na Table, koeto e ot tip RowCollection ili neshto takova...

Отговор
в отговор на bahsan #4

Re: Design Issue

По скоро принципно питам от колкото конкретно, ама ето един пример.
Table генерира html таблица, като в do(); се "фореийчват" Rows, които пък от своя страна се състоят от Cells. Но примерно за някои от видовите Cell ни трябва името на формата, която пък я вземаме с table.getName();.
А addRow е по скоро някъв псевдокод.

Отговор