UML图
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 杨家毅软件架构
{
abstract class MobilePhone
{
public abstract void SendMessage();
public abstract void Call();
public MobilePhone() { }
}
class Apple : MobilePhone
{
public Apple() : base() { }
public override void SendMessage()
{
Console.WriteLine("APPLE功能:发送信息");
}
public override void Call()
{
Console.WriteLine("APPLE功能:打电话");
}
}
class Mi : MobilePhone
{
public Mi() : base() { }
public override void SendMessage()
{
Console.WriteLine("MI功能:发送信息");
}
public override void Call()
{
Console.WriteLine("MI功能:打电话");
}
}
abstract class Function : MobilePhone
{
private MobilePhone _mobilephone;
public Function() : base() { }
public void Decorate(MobilePhone mobilephone)
{
_mobilephone = mobilephone;
}
public override void SendMessage()
{
_mobilephone.SendMessage();
}
public override void Call()
{
_mobilephone.Call();
}
}
class Bluetooth : Function
{
public Bluetooth() : base() { }
public override void SendMessage()
{
Connect();
}
public void Connect()
{
Console.WriteLine("添加蓝牙模块");
}
}
class GPS : Function
{
public GPS() : base() { }
public override void SendMessage()
{
Location();
}
public void Location()
{
string L = "宁大科院";
Console.WriteLine("添加GPS模块 当前位置:" + L);
}
}
class Camera : Function
{
public Camera() : base() { }
public override void SendMessage()
{
VCamera();
}
public void VCamera()
{
Console.WriteLine("添加视频模块");
}
}
class Program
{
static void Main(string[] args)
{
MobilePhone apple = new Apple();
Bluetooth bluethooh = new Bluetooth();
Camera camera = new Camera();
MobilePhone mi = new Mi();
apple.SendMessage();
apple.Call();
bluethooh.Decorate(apple);
bluethooh.SendMessage();
GPS gps = new GPS();
gps.Decorate(apple);
gps.SendMessage();
camera.Decorate(apple);
camera.SendMessage();
mi.SendMessage();
mi.Call();
bluethooh.Decorate(mi);
bluethooh.SendMessage();
gps.Decorate(mi);
gps.SendMessage();
camera.Decorate(mi);
camera.SendMessage();
}
}
}
运行结果
原文:http://www.cnblogs.com/Yang-jy/p/5092885.html