package flyweight;
public class Client {
public static void main
(String[] args
) { TagFactory factory = new TagFactory();
System.
out.
println(new Client
().
CreateBodyLayout(factory
));
}
public String CreateBodyLayout
(TagFactory factory
) { TagContext context = new TagContext();
CssStyle styles = new CssStyle();
// Приветствие
PTag p = factory.GetPTag();
styles.AddStyle("text-align", "center");
styles.AddStyle("font-size", "12px");
context.setStyle(styles);
res += p.Output("Welcome to out site!", context);
// Картинка логотипа
ImgTag img = factory.GetImgTag();
styles.Clear();
styles.AddStyle("text-align", "center");
context.setStyle(styles);
res += img.Output("http://company.com/images/logo.gif", context);
// Ссылка на страницу контактов
ATag a = factory.GetATag();
styles.Clear();
styles.AddStyle("font-size", "10px");
styles.AddStyle("color", "green");
context.setStyle(styles);
String link = a.
Output("http://company.com/contacts/",
"click here", context
);
// Информация о странице контактов
DivTag div = factory.GetDivTag();
styles.Clear();
styles.AddStyle("text-align", "left");
context.setStyle(styles);
res += div.Output("You may visit our contacts page: " + link + ".", context);
// Заключительный абзац текста, второй тег <P>
// Обратите внимание, что при этом не инстанцируется
// новый объект PTag-а - будет использован предущий,
// ранее инстанцированный
PTag p2 = factory.GetPTag();
styles.Clear();
styles.AddStyle("text-align", "left");
context.setStyle(styles);
res += p2.Output("We hope, you will enjoy our site! ;)", context);
return res;
}
}