/*
* User: Administrator
* Date: 2007-7-2 Time: 15:49
*/
// 一些命令,作用是画圆,画方,画线,三个主要的命令,
// 命令模式最主的特点是,可以方便的加入权限的判断
// 最后便使用了一个代理模式,来实现这个权限的判断
//
using System;
using System.Drawing;
using System.Windows.Forms;
namespace SecurityCommand{
public abstract class Command{
private Graphics g;
public Command(){}
public Graphics cav{
get { return g;}
set {g = value;}
}
public abstract void Execute();
}
public class CircleCommand:Command{
public CircleCommand(){}
public override void Execute()
{
Pen p = new Pen(Color.Red);
this .cav.DrawEllipse(p, 0 , 0 , 100 , 100 );
}
}
public class LineCommand:Command{
public LineCommand(){}
public override void Execute()
{
Pen p = new Pen(Color.Red);
this .cav.DrawLine(p, 0 , 0 , 100 , 100 );
}
}
public class RectCommand:Command{
public RectCommand(){}
public override void Execute()
{
Pen p = new Pen(Color.Red);
this .cav.DrawRectangle(p, 0 , 0 , 100 , 100 );
}
}
public class SecurityCommand:Command{
private Command c;
public SecurityCommand(Command c){
this .c = c;
}
public override void Execute()
{
MessageBox.Show( " 权限判断 " + c.GetType().Name);
c.Execute();
}
}
}
// 界面的函数
//
/*
* User: Administrator
* Date: 2007-7-2 Time: 15:51
*/
using System;
using System.Drawing;
using System.Windows.Forms;
using SecurityCommand;
namespace myMemonto
{
/// <summary>
/// Description of MyDraw.
/// </summary>
public partial class MyDraw : Form
{
private Command circle;
private Command line;
private Command rect;
private Command scircle;
private Command sline;
private Command sRect;
[STAThread]
public static void Main(){
Application.Run( new MyDraw());
}
public MyDraw()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
Init();
scircle = new SecurityCommand.SecurityCommand(circle);
sline = new SecurityCommand.SecurityCommand(line);
sRect = new SecurityCommand.SecurityCommand(rect);
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void Init(){
circle = new SecurityCommand.CircleCommand();
circle.cav = this .CreateGraphics();
line = new SecurityCommand.LineCommand();
line.cav = this .CreateGraphics();
rect = new SecurityCommand.RectCommand();
rect.cav = this .CreateGraphics();
}
void TsmCircleClick( object sender, EventArgs e)
{
scircle.Execute();
}
void TsmLineClick( object sender, EventArgs e)
{
sline.Execute();
}
void TsmRectClick( object sender, EventArgs e)
{
sRect.Execute();
}
void TsmExitClick( object sender, EventArgs e)
{
Application.Exit();
}
}
}
* User: Administrator
* Date: 2007-7-2 Time: 15:49
*/
// 一些命令,作用是画圆,画方,画线,三个主要的命令,
// 命令模式最主的特点是,可以方便的加入权限的判断
// 最后便使用了一个代理模式,来实现这个权限的判断
//
using System;
using System.Drawing;
using System.Windows.Forms;
namespace SecurityCommand{
public abstract class Command{
private Graphics g;
public Command(){}
public Graphics cav{
get { return g;}
set {g = value;}
}
public abstract void Execute();
}
public class CircleCommand:Command{
public CircleCommand(){}
public override void Execute()
{
Pen p = new Pen(Color.Red);
this .cav.DrawEllipse(p, 0 , 0 , 100 , 100 );
}
}
public class LineCommand:Command{
public LineCommand(){}
public override void Execute()
{
Pen p = new Pen(Color.Red);
this .cav.DrawLine(p, 0 , 0 , 100 , 100 );
}
}
public class RectCommand:Command{
public RectCommand(){}
public override void Execute()
{
Pen p = new Pen(Color.Red);
this .cav.DrawRectangle(p, 0 , 0 , 100 , 100 );
}
}
public class SecurityCommand:Command{
private Command c;
public SecurityCommand(Command c){
this .c = c;
}
public override void Execute()
{
MessageBox.Show( " 权限判断 " + c.GetType().Name);
c.Execute();
}
}
}
// 界面的函数
//
/*
* User: Administrator
* Date: 2007-7-2 Time: 15:51
*/
using System;
using System.Drawing;
using System.Windows.Forms;
using SecurityCommand;
namespace myMemonto
{
/// <summary>
/// Description of MyDraw.
/// </summary>
public partial class MyDraw : Form
{
private Command circle;
private Command line;
private Command rect;
private Command scircle;
private Command sline;
private Command sRect;
[STAThread]
public static void Main(){
Application.Run( new MyDraw());
}
public MyDraw()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
Init();
scircle = new SecurityCommand.SecurityCommand(circle);
sline = new SecurityCommand.SecurityCommand(line);
sRect = new SecurityCommand.SecurityCommand(rect);
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
void Init(){
circle = new SecurityCommand.CircleCommand();
circle.cav = this .CreateGraphics();
line = new SecurityCommand.LineCommand();
line.cav = this .CreateGraphics();
rect = new SecurityCommand.RectCommand();
rect.cav = this .CreateGraphics();
}
void TsmCircleClick( object sender, EventArgs e)
{
scircle.Execute();
}
void TsmLineClick( object sender, EventArgs e)
{
sline.Execute();
}
void TsmRectClick( object sender, EventArgs e)
{
sRect.Execute();
}
void TsmExitClick( object sender, EventArgs e)
{
Application.Exit();
}
}
}