Návrhy vylepšení jazyka Delphi: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
Bez shrnutí editace |
Bez shrnutí editace |
||
Řádek 1: | Řádek 1: | ||
=Nepoužívaní globálních proměnných= |
=Nepoužívaní globálních proměnných a funkcí= |
||
Přesun k plně objektovému programování. Nepoužívání globálních proměnných jako Application, FormX, Screen, Mouse, aj. Extrémně by byla použita pouze jediná globální proměnná něco jako System. |
Přesun k plně objektovému programování. Nepoužívání globálních proměnných jako Application, FormX, Screen, Mouse, aj. Extrémně by byla použita pouze jediná globální proměnná něco jako System. |
||
Řádek 35: | Řádek 35: | ||
inherited; |
inherited; |
||
end;</pre> |
end;</pre> |
||
=Nabízet čistý typ interface bez počítání referencí= |
|||
Každý typ definovaný jako nejjednodušší dětí automaticky metody pro počítání referencí. Z pohledu čistoty by mělo být počítání referencí definováno pomocí samostatného interface typu jako např. IRefCount. Díky tomu by bylo možné např. realizovat jiný způsob počítání referencí či jinou správu alokace objektů. |
|||
<pre>type |
|||
TSomeInterface = interface |
|||
end;</pre> |
|||
=Přidat do jazyka podporu pro "objektové" elementární typy= |
|||
Sloučit funkce a základní elementární typy do objektové formy. Základní typy se však kopírují jako přímá data, kdežto objekty jako reference. |
|||
<pre>type |
|||
TByte = class(IAssignable, IComparable, IOrdinal) |
|||
procedure Assign(Source: IAssignable); operator :=; |
|||
function EqualTo(Source: IComparable): TBoolean; operator =; |
|||
function LessThan(Source: IOrdinal): TBoolean; operator <; |
|||
procedure Inc; |
|||
procedure Dec; |
|||
... |
|||
end; |
|||
TRefByte = ^TByte; |
|||
</pre> |
|||
[[Kategorie:Programování]] |
[[Kategorie:Programování]] |
Verze z 11. 8. 2010, 11:55
Nepoužívaní globálních proměnných a funkcí
Přesun k plně objektovému programování. Nepoužívání globálních proměnných jako Application, FormX, Screen, Mouse, aj. Extrémně by byla použita pouze jediná globální proměnná něco jako System.
Namísto klasického
begin Application.Initialize; Application.CreateForm(TMainForm, MainForm); Application.CreateForm(TSecondForm, SecondForm); Application.Run; end.
k objektovému
type TMyApplication = class(TApplication) MainForm: TMainForm; SecondForm: TSecondForm; constructor Create; override; destructor Destroy; override; end; procedure TMyApplication.Create; begin inherited; MainForm := TMainForm.Create(Self); SecondForm := TSecondForm.Create(Self); end; procedure TMyApplication.Create; begin MainForm.Free; SecondForm.Free; inherited; end;
Nabízet čistý typ interface bez počítání referencí
Každý typ definovaný jako nejjednodušší dětí automaticky metody pro počítání referencí. Z pohledu čistoty by mělo být počítání referencí definováno pomocí samostatného interface typu jako např. IRefCount. Díky tomu by bylo možné např. realizovat jiný způsob počítání referencí či jinou správu alokace objektů.
type TSomeInterface = interface end;
Přidat do jazyka podporu pro "objektové" elementární typy
Sloučit funkce a základní elementární typy do objektové formy. Základní typy se však kopírují jako přímá data, kdežto objekty jako reference.
type TByte = class(IAssignable, IComparable, IOrdinal) procedure Assign(Source: IAssignable); operator :=; function EqualTo(Source: IComparable): TBoolean; operator =; function LessThan(Source: IOrdinal): TBoolean; operator <; procedure Inc; procedure Dec; ... end; TRefByte = ^TByte;