Вопрос по архитектуре
От: Neir0  
Дата: 08.08.09 20:20
Оценка:
Всем привет!
Сражу скажу, что я начинающий программист, поэтому не кидайтесь камнями
Суть такова:
Есть некий поисковый механизм, принимающий на вход параметры поиска вида [Name=Alex; Age=23; Country=3 и т.д.]
Нужно прикрутить к нему морду и немного логики.
Задача проста и никакой технической сложности не представляет(мне так кажется) и хотелось бы ее реализовать по-грамотному. В этом вся проблема, как правильно я не знаю, свой велосипед изобретать не хочется, тем более задача типовая.
Вот что меня интересует:
В каких структурах лучше размещать параметры и их описания?
параметров много, все они имеют различные типы и граничные условия + еще нужно хранить подсказки, описания etc
и еще хочется, чтобы в самой программе было удобно оперировать поиском. Например создать такой запрос
search(..,..,Countries.Russia,...), где Countries.Russia — перечисление = 3. т.е. не пихать везде магические числа, а что-то осмысленное.

Если вы дадите ссылки на похожие, правильно написанные опенсоурс приложения, это будет здорово

09.08.09 10:52: Перенесено модератором из '.NET' — TK
Re: Вопрос по архитектуре
От: dileon  
Дата: 13.08.09 09:09
Оценка:
как вариант могу предложить такой код:
    class Program
    {
        class Country
        {
            private int _id = -1;
            private string _name = String.Empty;
            private string _description = String.Empty;

            public int Id
            {
                get { return _id; }
            }
            public string Name
            {
                get { return _name; }
            }
            public string Description
            {
                get { return _description; }
            }
            public Country(int id, string name, string description)
            {
                _id = id;
                _name = name;
                _description = description;
            }
        }
        class Countries
        {
            public static readonly Country Country1 = new Country(1, "country1", "it is country1");
            public static readonly Country Country2 = new Country(2, "country2", "it is country2");
            public static readonly Country Country3 = new Country(3, "country3", "it is country3");
        }
        static void Main(string[] args)
        {
            Console.WriteLine("{0} - {1} - {2}", Countries.Country1.Id, Countries.Country1.Name, Countries.Country1.Description);
            Console.WriteLine("{0} - {1} - {2}", Countries.Country2.Id, Countries.Country2.Name, Countries.Country2.Description);
            Console.WriteLine("{0} - {1} - {2}", Countries.Country3.Id, Countries.Country3.Name, Countries.Country3.Description);
            Console.ReadKey();
        }
    }
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Вопрос по архитектуре
От: dileon  
Дата: 13.08.09 09:22
Оценка:
Здравствуйте, Neir0, Вы писали:

N>Всем привет!

N>Сражу скажу, что я начинающий программист, поэтому не кидайтесь камнями
N>Суть такова:
N>Есть некий поисковый механизм, принимающий на вход параметры поиска вида [Name=Alex; Age=23; Country=3 и т.д.]
N>Нужно прикрутить к нему морду и немного логики.
N>Задача проста и никакой технической сложности не представляет(мне так кажется) и хотелось бы ее реализовать по-грамотному. В этом вся проблема, как правильно я не знаю, свой велосипед изобретать не хочется, тем более задача типовая.
N>Вот что меня интересует:
N>В каких структурах лучше размещать параметры и их описания?
N>параметров много, все они имеют различные типы и граничные условия + еще нужно хранить подсказки, описания etc
N>и еще хочется, чтобы в самой программе было удобно оперировать поиском. Например создать такой запрос
N>search(..,..,Countries.Russia,...), где Countries.Russia — перечисление = 3. т.е. не пихать везде магические числа, а что-то осмысленное.

N>Если вы дадите ссылки на похожие, правильно написанные опенсоурс приложения, это будет здорово


как вариант могу предложить следующий код:
    class Program
    {
        class Country
        {
            private int _id = -1;
            private string _name = String.Empty;
            private string _description = String.Empty;

            public int Id
            {
                get { return _id; }
            }
            public string Name
            {
                get { return _name; }
            }
            public string Description
            {
                get { return _description; }
            }
            public Country(int id, string name, string description)
            {
                _id = id;
                _name = name;
                _description = description;
            }
        }
        class Countries
        {
            public static readonly Country Country1 = new Country(1, "country1", "it is country1");
            public static readonly Country Country2 = new Country(2, "country2", "it is country2");
            public static readonly Country Country3 = new Country(3, "country3", "it is country3");
        }
        static void Main(string[] args)
        {
            Console.WriteLine("{0} - {1} - {2}", Countries.Country1.Id, Countries.Country1.Name, Countries.Country1.Description);
            Console.WriteLine("{0} - {1} - {2}", Countries.Country2.Id, Countries.Country2.Name, Countries.Country2.Description);
            Console.WriteLine("{0} - {1} - {2}", Countries.Country3.Id, Countries.Country3.Name, Countries.Country3.Description);
            Console.ReadKey();
        }
    }
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.