>Createの中にSetHogeの内容が丸々入ってるのは

   ∧,,∧     / 説明が足りなかったかも
  ミ;゚Д゚彡  < あと、理想は理想で現実は
  ミつ  つ   \ 楽するために>>304の(1.)のケースは
            よく書くと思われ
procedure THage.AAA(Value: THoge);
begin
処理; 処理; 処理;
 FHoge := Value;
処理; 処理; 処理;
end;
procedure THage.SetHoge(Value: THoge);
begin
AAA(Value);
end;
constru(a?)ctor THage.Create(HogeValue: THoge);
begin
AAA(HogeValue);
end;

こうすると、他メソッドを作る時に
FHogeに何か付属処理あるときはAAAを呼ぶし
直接必要なときはFHogeを直接扱う
ことが出来るのではないでしょうか。

Createでの値代入と、Setでの値代入が
微妙に異なる処理になることに即対応できるやすいかな。

SetとかCreateがクラス外部とのインターフェースで
AAAが内部ロジックと考えて、そこを分離してるです。