フライウェイトパターンを適用するには、Objectプロパティを組み込みプロパティと外部プロパティに分割する必要があります。固有のプロパティはObjectをユニークにしますが、外部のプロパティはクライアントコードによって設定され、異なる操作を実行するために使用されます。フライウェイトパターンの使用はありません。本当に便利ですか?
しかし私の質問は、インスタンス変数として(以下のEmailクラスを参照)、固有のプロパティと外部プロパティの両方を持つことができず、ループの外にオブジェクトを1つ作成してループ内のパラメータを設定し、
public class Test {
public static void main(String[] args) {
Email ob = new Email();
for (int i = 0; i < 10; i++) {
ob.sender = String.valueOf(i);
ob.sendEmail();
}
}
}
public class Email {
public String sender;
public void sendEmail()
{
System.out.println("Email sent to sender:"+sender);
}
}
実際、Flyweightはパターンではなく、Javaでメモリを節約するための回避策です。それはoopとは関係ありません –
@SupunWijerathne、flyweightは標準的なデザインパターンの本のパターン、_再利用可能なオブジェクト指向ソフトウェアの要素_です。それがパターンではなく、OOPとは何の関係もないということは完全なナンセンスです。このパターンはJava固有のものではありません。 GoF OOPパターンは言語に依存しません。 – jaco0646
@ jaco0646 Java特有のものではありません。しかし、OOとはまったく関係がありません。なぜあなたはそのナンセンスを言っていますか? OOとは何ですか?設計パターンとは、ソフトウェアの構造的側面を考慮して、問題を解決する方法を示すものです。フライウェイトがパターンの場合、「マージソート」がパターンであると言う人がいれば、間違っているとは見えません。あなたのアイデアを見たいと思っています。 :)) –