设计模式(一)

GOF模式根据准则分类:

(1)Creational:创建性

(2)Structural:结构型

(3) Behavioral:行为型

根据范围分类:

(1)类模式:处理父类与子类

(2)对象模式

一 简单工厂模式

由一个工厂类根据传入的参量,动态决定应该创建哪一个产品类底实例。

public class Garden {
  protected Plant center, shade, border;
  protected bool showCenter, showShade, showBorder;
  //select which ones to display
  public void setCenter() {showCenter = true;}
  public void setBorder() {showBorder =true;}
  public void setShade() {showShade =true;}
  //draw each plant
  public void draw(Graphics g) {
   if (showCenter) center.draw (g, 100, 100);
   if (showShade) shade.draw (g, 10, 50);
   if (showBorder) border.draw (g, 50, 150);
  }
 }
 public class PerennialGarden : Garden
 {
  public PerennialGarden() {
   shade = new Plant("Astilbe");
   border = new Plant ("Dicentrum");
   center = new Plant ("Sedum");
  }
 }
public class Plant  {
  private string name;
  private Brush br;
  private Font font;

  public Plant(string pname) {
   name = pname;     //save name
   font = new Font ("Arial", 12);
   br = new SolidBrush (Color.Black );
  }       
  //-------------
  public void draw(Graphics g, int x, int y) {
   g.DrawString (name, font, br, x, y);
  }
 }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值