コード例 #1
0
            public void SimpleMultiUseDecoration()
            {
                var needs = new Needs();

                needs.Add <IFacility, BasicFacility>();
                Assert.AreEqual(1, needs.Get <IFacility>().Facilitate());
                needs.Decorate <IFacility, AdvancedFacility>();
                Assert.AreEqual(2, needs.Get <IFacility>().Facilitate());

                // Decorator can be re-applied/re-wrapped multiple times
                needs.Decorate <IFacility, AdvancedFacility>();
                Assert.AreEqual(3, needs.Get <IFacility>().Facilitate());
            }