如图,这种的设计模式,先写什么后写什么,求大神帮我罗列书详细步骤图
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
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