[ООП] правильный подход к организации классов
Автор рюхает. А про наследование он ничего не пишет?
ftp://lorien.local/pub/docs/ebooks/C++/effective%20c++/EC/EI35_FR.HTM
Вообще, про наследование хорошо пишет Herb Sutter, например http://www.gotw.ca/publications/mill07.htm
Пишет, например, Вообще, про наследование хорошо пишет Herb Sutter, например http://www.gotw.ca/publications/mill07.htm
да, и компактная запись "правильно" (слева-направо) ориентированная, вида:
current.SomeMethod.SomeOtherMethod.SomeAnotherMethod
превращается в громоздкого монстра ориентированного справа-налево:
SomeAnotherLongNamespace.SomeAnotherClass.SomeAnotherMethod(AnotherLongNamespace.AnotherClass.AnotherMethod(
SomeLongNamespace.SomeClass.SomeMethod(current;
Причем, при написании кода - все эти SomeLongNamespace - очень и очень не "интуитивны".
т.е. что-то такое:
interface IRectangle
{
double Height {get;}
double Width {get;}
}
[Friend for IRectangle]
public double Square(IRectangle rectangle)
{
return rectangle.Height * rectangle.Width;
}
void Main
{
IRectangle rect = GetRectangleFigure;
Console.WriteLine(rect.Square);
}
У меня мозилла книгу не открывает. Там какие-то скрипты и редиректы в бесконечном цикле.
Сказать, что основным синтаксисом для вызова и методов, и функций будет f(x, y, ...) и в качестве синтаксического сахара - эквивалентная запись x.f(y, ...)
ps
и еще вот такое тоже хочется:
interface IFemale
{
}
interface IMale
{
}
[friend for IFemale, IMale]
void Потрахаться (IFemale female, IMale male)
{
//...
}
void Main
{
IFemale female = GetFemale;
IMale male = GetMale;
female.Потрахаться (male);
male.Потрахаться (female);
}
> male.Потрахаться (female);
не пойму, кто кого ебет?
Зависит от ТЗ
там же, где и были, оставить
> и еще вот такое тоже хочется
это уже другая фича
наверное, нужен синтаксис с мечеными операндами и multiple dispatch?
Идея правильно, но реализация в текущих языках хромает, т.к. становится совсем неочевидной связь между классом и вспомогательными методами.Про синтаксические проблемы там тоже написано.
....
Может быть, не помню - давно читал, в детстве.
Оставить комментарий
Landstreicher
Вот нашел интересную статью: http://www.softcraft.ru/coding/sm/sm01.shtmlПрошу прощения, если уже было.