适配器模式(Adapter)

 1 /*
 2  * 一个软件团队开发绘图系统,设计了圆对象(Circle)、矩形对象(Rectangle),线对象(Line)
 3  * 都支持Draw()函数,即可以通过Draw()函数绘制图形。为了加快项目进度,将角度对象(Angle)
 4  * 绘制功能交给了合作团队实现。但合作团队将角度对象绘制函数定为了DrawAngle()。
 5  * 绘图系统提供给用户后,用户不满意,希望能统一的调用,不用记太多命令。
 6  * 应用适配器模式,用C#控制台应用程序完善该设计。
 7 */
 8 using System;
 9 using System.Collections.Generic;
10 using System.Linq;
11 using System.Text;
12 
13 namespace Adapter
14 {
15     abstract class Graphic
16     {
17         public abstract void Draw();
18     }
19     class Circle : Graphic
20     {
21         public override void Draw()
22         {
23             Console.WriteLine("画了一个圆。");
24         }
25     }
26     class Rectangle : Graphic
27     {
28         public override void Draw()
29         {
30             Console.WriteLine("画了一个矩形。");
31         }
32     }
33     class Line : Graphic
34     {
35         public override void Draw()
36         {
37             Console.WriteLine("画了一条直线。");
38         }
39     }
40     class Angle 
41     {
42         public void DrawAngle()
43         {
44             Console.WriteLine("画了个角。");
45         }
46     }
47     class Adapter : Graphic
48     {
49         private Angle angle = new Angle();
50         public override void Draw()
51         {
52             angle.DrawAngle();
53         }
54     }
55     class Program
56     {
57         static void Main(string[] args)
58         {
59             Graphic circle = new Circle();
60             Graphic rectangle = new Rectangle();
61             Graphic line = new Line();
62             Graphic angle = new Adapter();
63             circle.Draw();
64             rectangle.Draw();
65             line.Draw();
66             angle.Draw();            
67         }
68     }
69 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值