четверг, 30 мая 2013 г.

"Дырявые абстракции" и property

http://russian.joelonsoftware.com/Articles/LeakyAbstractions.html

Есть property X : Integer read GetX write SetX.

И есть метод doSomething (var X: Integer)

ТУДА property передать НЕЛЬЗЯ!

Почему спрашивается?

Почему нельзя сделать compiler-magic типа

l_X := SomeObject.X;
SomeMethod(l_X);
SomeObject.X := l_X;

???

Зачем разрывать "дырявые абстракции"?

Чтобы "взорвать мозг программистам"? Или просто "не додумали"?

Или ЕЩЁ пример.

property X: SomeRecord

ПОЧЕМУ нельзя написать SomeObject.X.SomeField := SomeValue? Тоже, чтобы "разорвать абстракцию" или взорвать мозг программистам?

Почему нельзя сделать compiler-magic:

l_Rec := SomeObject.X;
l_Rec.SomeField := SomeValue;
SomeObject.X := l_Rec;

???

НЕ ПОНИМАЮ....

Я бы на месте Embarcadero "это" сделал бы...

P.S. Если уж сделали ARC в виде compiler-magic, то и ТУТ бы я это сделал бы...

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

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