Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Оцените класс / 23 сообщений из 23, страница 1 из 1
16.03.2007, 05:58
    #34394949
Baikaly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Здраствуйте.
Недавно начал программировать в Visual С++ 6.0
Мне надо составить класс поднадзорных индивидуальных предпринимателей.
Я сделал как считал правильным, но помойму он очень большой получается или это нормлально вот класс:
Class CNaturalPerson
{
public:
CString GetFamilyName()
CString GetFirstName()
CString GetSecondName()
CString GetPlaceWork()
CPost GetPost()
CString GetPlaceLife
CString GetCityBorn
Date GetDataBorn
CString GetDocumentName
CString GetDocumentNumber
CString GetDocumentTake
Date GetDocumentDataTake
CString GetIPINN
BOOL GetIsIP
Date GetIPDataReg
CString GetIPNumberReg
BOOL IsNewObject
CString GetIPOGRN
CString GetTelefon
CString GetDopInfo
Date GetCreateData
CEmployee GetCreateEm
BOOL GetChangeIs
Date GetChangeData
CEmployee GetChangeEm
SetFamilyName (CString strFamilyName)
SetFirstName (CString strFirstName)
SetSecondName (CString strSecondName)
SetCityLife (CString strCityLife)
SetStreetLife (CString strStreetLife)
SetPost (CPost post)
SetPlaceWork(CString strPlaceWork)
SetCityBorn (CString strCityBorn)
SetDataBorn (Date datData)
SetDocumentName (CString strDocName)
SetDocumentNumber (CString strDocNumber)
SetDocumentTake (CString strDocTake)
SetDocumentDataTake (Date datDataTake)
SetIPINN (CString strINN)
SetIsIP (BOOL bIP)
SetIPDataReg (Date datIPReg)
SetIPNumberReg (CString strIPNumber)
SetIPOGRN (CString strOGRN)
SetTelefon (CString strTel)
SetDopInfo (CString strDopInfo)

private:
strName : CString
strFamilyName : CString
strFirstName : CString
strSecondName : CString
datBirthday : Date
strCityLife : CString
strStreetLife : CString
strPlaceWork : CString
strDocument : CString
strNuberDoc : CString
strWhoGive : CString
datDataGive : Date
strINN : CString
strHunterTicket : CString
strOGRN : CString
datDataReg : Date
datDataIP : Date
strTelefon : CString
strDopInfo : CString
nidEmCreate : int
datDateCreat : Date
datDateChange : Date
nidEmChange : Int
bNewObject : BOOL = FALSE
};
Вот такой класс
...
Рейтинг: 0 / 0
16.03.2007, 08:26
    #34395025
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
очень не удобно будет с этим всем работать, в особенности если понадобиться добавить еще пару параметров... для таких дел используют БД
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
16.03.2007, 09:33
    #34395133
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Ну это еще не большей клас :))

А так , действительно , может посмотреть в сторону БД ?
...
Рейтинг: 0 / 0
16.03.2007, 09:49
    #34395180
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
JibSkeartНу это еще не большей клас :))

А так , действительно , может посмотреть в сторону БД ?
Интересно, а чем БД вам поможет, придется еще несколько классов создать чтобы мапирование обеспечить.
...
Рейтинг: 0 / 0
16.03.2007, 10:25
    #34395338
mnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Нормальный класс. БД здесь вообще не причём. Может автор всё будет в плоских файлах хранить...
...
Рейтинг: 0 / 0
16.03.2007, 10:26
    #34395346
Baikaly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Вся информация храниться в БД, есть еще классы CNaturalPersonMapper, который получает данные из базы данных и формирует объекты класса CNAturalPerson. А обекты класса CNaturalPerson это уже конечные объекты который передается в слой представления для заполнения строк формы.
...
Рейтинг: 0 / 0
16.03.2007, 10:34
    #34395396
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Нормально. Класс данных как класс данных. Вот если бы ему еще функционал какой, а то одни get да set. Вот только декларации в private почему-то в паскалевой нотации
...
Рейтинг: 0 / 0
16.03.2007, 14:08
    #34395816
MYTH777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Слишком большой.
Если В файлах не Бд-шных хранить такую инфу, то почему бы не пользоваться структурами.
И написать ф-ции для работы с этими стр-ми. Т.Е. сохранение, чтение. А потом просто юзать эти переменные в стр-ре. Или на Бд перейти.
Вот и все.
...
Рейтинг: 0 / 0
16.03.2007, 17:45
    #34396897
Teem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
class пишется а не Class, вы что в блокноте писали,
я уже не говорю об объявлении переменных. Так в С++ не пишут.
...
Рейтинг: 0 / 0
16.03.2007, 20:54
    #34397244
Baikaly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Вы почти правы так в текстовый файл переносит Visual Studio Modeler просто лень было править все вручную, в Visual c++ переносит все правильно.
...
Рейтинг: 0 / 0
17.03.2007, 00:54
    #34397421
goodbit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Разбейте на более мелкие по смыслу. А потом вставьте эти экземпляры классов в ваш самый большой класс. Нормализовать так и хочеться!
...
Рейтинг: 0 / 0
17.03.2007, 01:52
    #34397446
Оцените класс
Класс как класс, правде если если нет функционала, то лучше бы структуру без кучи get'ов и set'ов. Но раз уж вы их ввели, то надо бы вместо SetFamilyName (CString strFamilyName) и остальных сделать SetFamilyName (const CString& strFamilyName), так правильнее
...
Рейтинг: 0 / 0
17.03.2007, 12:45
    #34397671
grieg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Ничего нового почти не скажу.
1. Написанное тут -- простое хранилище данных. Если оно простое хранилище, то нафиг нужны get/set. Делай структуру.
2.
Код: plaintext
1.
2.
3.
CString GetDocumentName
CString GetDocumentNumber
CString GetDocumentTake
Проглядывает намешивание в одну структуру всего и сразу. Атрибуты документа -- это атрибуты документа (простите за тавтологию), а не персоны. У персоны атрибут -- сам документ. Документ -- это в качестве примера. К остальным атрибут тоже присмотреться надо.
3. Почему Visual С++ 6.0 ? Это все-таки старье.
4. Пусть меня поправят виндусятники, но я не понимаю, нафига нужны нестандартные CString и BOOL, когда есть стандартные std::string и bool?
5. Все-таки вопрос о структуре класса хорошо бы рассматривать в контексте решаемой задачи.
...
Рейтинг: 0 / 0
18.03.2007, 13:28
    #34398525
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Baikaly пишет:

> Недавно начал программировать в Visual С++ 6.0
> Мне надо составить класс поднадзорных индивидуальных предпринимателей.

Никому не нужен класс с инкапсуляцией, но без какой-либо функциональности.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
19.03.2007, 12:23
    #34399810
k e k s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
Это вообще компилится???
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Class CNaturalPerson  <-- "Class" - "class"
{
public:
CString GetFamilyName()   <-- где ";"
..
..
private:
strName : CString  <--  "CString strName;"
...
...
Рейтинг: 0 / 0
19.03.2007, 13:19
    #34400046
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
действительно, можно лишь разбить его на подобъекты по тематике и, если получится, встроить функционал работы с базой – сохранение, выборка.
grieg3. Почему Visual С++ 6.0 ? Это все-таки старье.нормальное старьё. Ты имеешь что-то против?
...
Рейтинг: 0 / 0
19.03.2007, 13:57
    #34400230
k e k s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
"3. Почему Visual С++ 6.0 ? Это все-таки старье."

VC++6 отличное IDE. Еще бы табы для окон вместо Window->Windows (Window list) и цены бы ему небыло.
...
Рейтинг: 0 / 0
19.03.2007, 14:17
    #34400303
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
k e k s пишет:

> VC++6 отличное IDE. Еще бы табы для окон вместо Window->Windows (Window
> list) и цены бы ему небыло.

Табы для него есть как plug-in.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
19.03.2007, 16:47
    #34400818
k e k s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
MasterZiv
k e k s пишет:

> VC++6 отличное IDE. Еще бы табы для окон вместо Window->Windows (Window
> list) и цены бы ему небыло.

Табы для него есть как plug-in.
Posted via ActualForum NNTP Server 1.4

можно линк?
заранее спасиб
...
Рейтинг: 0 / 0
19.03.2007, 18:12
    #34401057
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
k e k s пишет:
> можно линк?

Я не помню. Даже как называется. Помню что есть.
Приблуда какая-то типа VisualAssist, но не он.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.03.2007, 00:50
    #34401556
k e k s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
MasterZiv
k e k s пишет:
> можно линк?

Я не помню. Даже как называется. Помню что есть.
Приблуда какая-то типа VisualAssist, но не он.
Posted via ActualForum NNTP Server 1.4


спасибо, добрый человек! нашел! Делаю поддержку для пары проектов в VS6. Очень рад. Буду пользовать. супер вещч!!

Кому интересно, вот линк:
http://www.codeproject.com/macro/wndtabs.asp?df=100
...
Рейтинг: 0 / 0
20.03.2007, 10:30
    #34401984
grieg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
maXmoдействительно, можно лишь разбить его на подобъекты по тематике и, если получится, встроить функционал работы с базой – сохранение, выборка.
Встраивать в структуру функционал по ее извлечению из базы -- не уверен, что это правильно.
Во-первых, не всякая работа с сущностью должна быть инкапсулирована в саму сущность.
Во-вторых, записи БД имеют совсем другую семантику присваивания и копирования, чем структуры C++.

нормальное старьё. Ты имеешь что-то против?
На самом деле ничего конкретного не имею. Просто полагаю, что без веских причин не стоит использовать старую версию продукта, когда есть новая, потому что:
1) в новых версиях фиксятся баги
2) в новые версии добавляются фичи
3) некоторые вещи из старых версий объявляются deprecated
Мало того, сам C++ не стоит на месте. Как там у 6-ой версии с iostrem vs iostream.h ?
...
Рейтинг: 0 / 0
21.03.2007, 17:57
    #34406864
duha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оцените класс
А что если сделать класс со вложениями из классов.
например
class PersonName
{
CString GetFamilyName()
CString GetFirstName()
CString GetSecondName
}

//ну так, для примера. ну или вместо классов структуры использовать
class PersonAddress
{...}

class personJob
{...}

...
class CNaturalPerson
{
PersonName name;
PersonAddress address;
PersonDocument document;
...
итд
}

самый объемлющий класс понятнее будет.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Оцените класс / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]