2
전날 꾸미기를 구현하고 있었고 그날 밤 나중에 예제와 같은 것이 데코레이터 패턴의 올바른 표현인지 궁금해하기 시작했습니다.데코레이터 패턴에서 컬렉션 멤버를 조작해도 괜찮습니까?
보통public abstract class Foo
{
public List<string> Names { get; set; }
public abstract string GetNames();
}
public abstract class BarDecorator : Foo
{
public abstract String GetNames();
}
public class JustAnOldBar : Foo
{
public JustAnOldBar() {
this.Names.Add("An Old Bar");
}
public override string GetNames()
{
return string.Join(",", this.Names.ToArray());
}
}
public class SomeDecorator : BarDecorator {
private Foo foo;
public SomeDecorator(Foo someFoo) {
this.foo = someFoo;
}
public override string GetNames()
{
return string.Join(",", this.Names) + "," + string.Join(",", this.foo.Names);
}
}
나는이 패턴을 구현할 때, 나는 비용이나 설명처럼 걸쳐 당기있어 단일 구성원 찾고 있어요,하지만 그것은 장식 또는 경우 콜렉션에서 작동하도록 적절한 있는지 궁금해 이 점에 관해서는 건축업자를보아야합니다.
그냥 장식입니다. 아무 잘못 없음. –