开发者社区 问答 正文

装修设计模式怎么写

screenshot
如图,这种的设计模式,先写什么后写什么,求大神帮我罗列书详细步骤图

展开
收起
蛮大人123 2016-03-23 15:21:31 1837 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    public abstract class Home
        {
            public string description = "空房子";
            public abstract string getDescription();
    
            public Double Area;
            public abstract Double getArea();
        }
    
        //房子
        public class House : Home
        {
            public House()
            {
                description = "MyHouse:";
            }
    
            public override string getDescription()
            {
                return description;
            }
    
            public override Double getArea()
            {
                return 0.0;
            }
        }
    
        //主卧
        public class MainCell : Home 
        {
            Home home;
    
            public MainCell(Home home,Double area)
            {
                this.home = home;
                this.Area = area;
            }
    
            public override string getDescription()
            {
                return this.home.getDescription() + " MainCell";
            }
    
            public override Double getArea()
            {
                return this.Area + home.getArea(); 
            }
        }
    
        //阳台
        public class Balcony : Home
        {
            Home home;
    
            public Balcony(Home home, Double area)
            {
                this.home = home;
                this.Area = area;
            }
    
            public override string getDescription()
            {
                return this.home.getDescription() + " Balcony";
            }
    
            public override Double getArea()
            {
                return this.Area + home.getArea();
            }
        }
    
    //测试代码
    
    //创建一个空房子,初期面积0
    Home myHouse = new House();
    
    //在房子上装饰一个主卧
    myHouse = new MainCell(myHouse, 20);
    //在房子上装饰一个主卧
    myHouse = new MainCell(myHouse, 20);
    //在房子上装饰一个阳台
    myHouse = new Balcony(myHouse, 15);
    
    Console.WriteLine(myHouse.getDescription());
    Console.WriteLine("Area:" + myHouse.getArea());
    
    //输入结果
    MyHouse: MainCell MainCell Balcony
    Area:55
    2019-07-17 19:11:16
    赞同 展开评论
问答分类:
问答地址: