пятница, 19 декабря 2008 г.

Проектирование Static Verbs английского языка

Лог переписки English Grammar Study Group. Использованы все принципы проектирования :)

[23:11:49] Ilya говорит: Нашел - эти слова, которые не употребляются в continious по научному называются статические, нединамические (stative verbs). Вот список http://www.perfect-english-grammar.com/stative-verbs.html
[23:12:41] Ilya говорит: Т.е. нельзя сказать I hating или I wishing
[23:21:35] Кирилл говорит: прям не полиморфные глаголы, статика :) Избегаем её всеми силами и несилами :)))
[23:21:47] Ilya говорит: :)
[23:45:22] Denis говорит: sealed к тому же :)
[23:45:46] Denis говорит: хотя нет, need есть наследник - needed ;)
[23:47:08] Кирилл говорит: а может "ed" - это агрегируемая часть класса need :) Neet.ToString() = "Needed"
[23:47:10] Кирилл говорит: )
[23:47:33] Denis говорит: не это врапер
[23:48:06] Кирилл говорит: не, просто булево поле IsInPast = false, и поэтому ToString по-другому работает))
[23:48:26] Denis говорит: class Needed
{
Need need;
ToString() { MakeItInPast() }
}
[23:48:50] Denis говорит: хотя чё-то не так
[23:48:54] Denis говорит: но смысл понятен
[23:49:00] Denis говорит: :)
[23:49:11] Кирилл говорит: class Need
{
bool IsInPast;

}
[23:49:21] Denis говорит: Неее
[23:49:22] Кирилл говорит: override string ToString()
[
[23:49:39] Кирилл говорит: return IsInPast? "Needed" : "Need"
[23:51:02] Denis говорит: фуууу
[23:51:05] Denis говорит: :)
[23:51:08] Кирилл говорит: Я понимаю, но всё же :)
[23:51:45] Denis говорит: понял!

Verb
virtual PresentContinousForm()
{
return "to be" + name + "ing";
}

Need : Verb, IStaticVerb
{
override PresentContinousForm()
{
return PresentSimple();
}
}
[23:52:25] Denis говорит: а нет гоню
[23:52:42] Denis говорит: StaticVerb : Verb

Need: StaticVerb
[23:53:01] Кирилл говорит: мм... IPresentContiniousable, IPresentSimpleable, ... :)))
[23:53:05] Denis говорит: даже ещё хуже!
[23:53:13] Denis говорит: Need - как класс нужен ли?
[23:53:36] Кирилл говорит: таак... Надо подумать. Так как слова - это тоже абстракции, которые что-то означают, то.... да)
[23:53:39] Denis говорит: конструктор - Verb(string name)

и пораждаем need:

need = new StaticVerb("need");
[23:54:12] Кирилл говорит: Ну это смотря что нужно от приложения. Если ИИ строить, то нужны классы на каждое слово)
[23:54:30] Denis говорит: Другой вопрос, будет мина:

fly = new StaticVerb("fly");
[23:54:36] Denis говорит: вроде код корректен, а неверный
[23:54:43] Denis говорит: поэтому нужно где-то словарь заложить
[23:54:49] Denis говорит: а!!!!
[23:54:54] Denis говорит: исопльзуем flyweight! ^)
[23:54:58] Кирилл говорит: Словам нужно атрибуты сделать, либо абстрагировать атрибуты до состояний
[23:55:41] Denis говорит: можно конечно все спрятать в StaticVerbFactory
[23:55:58] Denis говорит: с сылкой на http://www.perfect-english-grammar.com/stative-verbs.html
[23:56:07] Denis говорит: сорри, в VerbFactory
[23:56:16] Кирилл говорит: )))
[23:56:50] Кирилл говорит: А как синонимами управлять... Каждый объект слова должен хранить списки синонимых, антонимых и тд
[23:57:17] Denis говорит: ну это другая юзер стори :)
[23:57:22] Кирилл говорит: :)

Комментариев нет:

Отправить комментарий