Чтобы применить flyweight pattern, нам нужно разделить свойство Object на внутренние и внешние свойства. Внутренние свойства делают объект уникальным, тогда как внешние свойства устанавливаются клиентским кодом и используются для выполнения различных операций.Я не вижу никакого использования мухи. Это действительно полезно?
Но мой вопрос в том, почему мы не можем иметь как внутреннее, так и внешнее свойство в качестве переменной экземпляра (см. Класс электронной почты ниже) и просто создать один объект вне цикла и задать параметры в цикле и отправить несколько писем с разными параметрами.
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, мухи - это образец из канонической книги «Шаблоны дизайна», «Элементы многоразового объектно-ориентированного программного обеспечения». Говорить, что это не шаблон и не имеет ничего общего с ООП - полная глупость; и шаблон не специфичен для Java. Шаблоны OOP GoF являются агностиками языка. – jaco0646
@ jaco0646 не специфичный для Java: yh, я согласен с этим с некоторой заметкой. Но это определенно не имеет ничего общего с OO. Почему вы говорите, что это глупость? Тогда что он имеет с OO? Шаблон проектирования - это то, что говорит о решении проблемы, учитывая структурные аспекты программного обеспечения. Если мухи - это шаблон, я не вижу неправильного, если кто-то говорит, что «merge-sort» - это шаблон. хотел бы видеть вашу идею. :)) –