Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.11.03;
Скачать: [xml.tar.bz2];

Вниз

проектирование иерархии классов   Найти похожие ветки 

 
Dmitry1987   (2013-02-06 13:32) [0]

программе будут операции над значениями атрибутов:

- Очистить
- Заменить полностью
- Заменить фрагмент
- Добавить текст вначало
- Добавить текст вконец

Нужно как-то хранить операцию и ее аргументы. Решил на каждую операцию сделать класс. Помогите с проектированием иерархии.  Правильно ли делать классы-пустышки? У меня получилось так:


TOperation = class
end;
TClear = class(TOperation)
end;
TReplaceFull = class(TFunction)
private
 FText: AnsiString;
public
 property Text: AnsiString read FText write FText;
end;
TReplacePartial = class(TFunction)
private
 FNewText: AnsiString;
 FOldText: AnsiString;
public
 property NewText: AnsiString read FNewText write FNewText;
 property OldText: AnsiString read FOldText write FOldText;
end;
TAddTop = class(TFunction)
private
 FText: AnsiString;
public
 property Text: AnsiString read FText write FText;
end;
TAddBottom = class(TFunction)
private
 FText: AnsiString;
public
 property Text: AnsiString read FText write FText;
end;


Чувствую что иерархия получилать бредовая, поправьте если что не так.


 
Ega23 ©   (2013-02-06 14:20) [1]


> Помогите с проектированием иерархии.

Чтобы помочь с проектированием, нужно сначала понять вот это:

> программе будут операции над значениями атрибутов:
>
> - Очистить
> - Заменить полностью
> - Заменить фрагмент
> - Добавить текст вначало
> - Добавить текст вконец

Я, например, нифига не понял. Что за атрибуты? XML или HTML-тэга? Или текстовые атрибуты свойств класса "Кривозубая Обезьяна"?
Почему текст?
Зачем иерархия классов, если не поддерживается полиморфизм?

В общем, дуть бобр, чётко и доходчиво объясни задачу.


 
O'ShinW ©   (2013-02-06 14:44) [2]


> - Очистить
> - Заменить полностью
> - Заменить фрагмент
> - Добавить текст вначало
> - Добавить текст вконец

Суть одна операция - Текст меняется на текст.

Очистить - с 0 до конца заменить на S = ""
Заменить полностью - с 0 до конца заменить на S
Заменить фрагмент - с x1 по x2 на на S
Добавить текст в начало - с 0 по 0 заменить на S
Добавить текст вконец - с конца до конца заменить на S


 
Ega23 ©   (2013-02-06 14:58) [3]


> Суть одна операция - Текст меняется на текст.


Ну тогда вообще элементарно:


TTextOperation = class
 class function Operation1(Params: ... ): string;
 class function Operation2(Params: ... ): string;
 ....
 class function OperationN(Params: ... ): string;
end;

И никаких иерархий. :)


 
Dmitry1987   (2013-02-06 14:59) [4]

Есть класс "Услуга" у которого есть набор атрибутов (properties): "Код", "Название", "Тариф" и проч. Есть класс-список объектов типа "Услуга".

Нужно сделать форму на которой пользователь сможет выбрать услугу, выбрать один из ее атрибутов и указать операцию над значением атрибута и аргументы операции. Т.е. выбираю к примеру услугу - "Услуга 1", атрибут - "Код", операцию "Добавить текст в начало", указываю аргумент операции - "A0".

Всю эту информацию нужно как-то хранить, она будет передоваться по сокету серверу приложений.


 
Dmitry1987   (2013-02-06 15:02) [5]

сервер приложений исходя из этих данных будет формировать sql-запрос


 
Ega23 ©   (2013-02-06 15:12) [6]

фигня какая-то, извините.


 
Jeer ©   (2013-02-06 15:36) [7]


> Dmitry1987   (06.02.13 14:59) [4]
>
> Есть класс "Услуга"


На тутошнем форуме нет услуг, как класса.


 
O'ShinW ©   (2013-02-06 17:23) [8]


> выбираю к примеру услугу - "Услуга 1", атрибут - "Код",
> операцию "Добавить текст в начало", указываю аргумент операции
> - "A0".


ListService[0].["КОД"].id_operation := 1;
ListService[0].["КОД"].x1 := 0;
ListService[0].["КОД"].x2 := 0;
ListService[0].["КОД"].S := "A0";



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.11.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
11-1248443105
DevilDevil
2009-07-24 17:45
2013.11.03
Горизонтальный ScrollBar


15-1368891373
Разведка
2013-05-18 19:36
2013.11.03
Помогите устроится программистом


2-1360143133
Dmitry1987
2013-02-06 13:32
2013.11.03
проектирование иерархии классов


15-1368541324
Es
2013-05-14 18:22
2013.11.03
Падение приложения, crash без визуализации


1-1316688285
denkop
2011-09-22 14:44
2013.11.03
TImage над TStringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский