{"url":"https://haru-s.hatenablog.com/entry/20101103/1288776903","published":"2010-11-03 18:35:03","author_url":"https://blog.hatena.ne.jp/haru-s/","provider_url":"https://hatena.blog","author_name":"haru-s","title":"Decorator pattern","version":"1.0","height":"190","description":"\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u5305\u542b\u3057\u3066\u6a5f\u80fd\u3092\u62e1\u5f35\u3059\u308b\u30d1\u30bf\u30fc\u30f3\uff0e import std.stdio; interface Ice { string name(); } class VanillaIce : Ice { override string name() { return \"\u30d0\u30cb\u30e9\u30a2\u30a4\u30b9\"; } } class ChocorateSomeIce : Ice { Ice ice; this(Ice ice) { this.ice = ice; } override string name() { return \"\u30c1\u30e7\u30b3\" ~ ice.name(); } } class GreenTeaIce : Ice \u2026","width":"100%","image_url":null,"html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fharu-s.hatenablog.com%2Fentry%2F20101103%2F1288776903\" title=\"Decorator pattern - ...ing logging 4.0\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","categories":["D\u8a00\u8a9e"],"blog_url":"https://haru-s.hatenablog.com/","type":"rich","blog_title":"...ing logging 4.0","provider_name":"Hatena Blog"}