コード例 #1
0
        public void TestDecorators()
        {
            Order o = new PhotoCamera();

            o = new Lens(o);
            Assert.AreEqual(o.cost(), 1799);
            o = new Filter(o);
            Assert.AreEqual(o.cost(), 1822.50);
            o = new Extender(o);
            Assert.AreEqual(o.cost(), 2251.50);

            Order order = new VideoCamera();

            order = new Lens(order);
            Assert.AreEqual(order.cost(), 2299);
            order = new Filter(order);
            Assert.AreEqual(order.cost(), 2322.50);
            order = new Extender(order);
            Assert.AreEqual(order.cost(), 2751.50);
        }