
Visual Basic 2010 设计模式
取材于程杰之《大话设计模式》,这本书深入浅出,出神入化,膜拜之。程先生是在C语言背景下讲解的,出于对C语言的畏惧和对Basic语言的怀念,将之改写为VB版。
ngbshzhn
数学教师一枚
展开
-
001 Visual Basic 简单工厂模式
1.设计一个简单的窗体2.抽象类'运算的抽象类Public Class Operation Private mNumA As Double Private mNumB As Double '第一个操作数属性 Public Property numA As Double Get numA = mNumA End Get Set(ByVal value As Double)原创 2020-05-25 16:54:45 · 234 阅读 · 0 评论 -
002Visual Basic 策略模式
1.窗体2.上下文Public Class CashContext Private mCashsuper As CashSuper Public Sub New(ByVal type As String) Select Case type Case "正常收费" Dim cs0 As CashNormal = New CashNormal("正常收费") ...原创 2020-05-25 17:23:52 · 167 阅读 · 0 评论 -
003Visual Basic装饰模式
1."Person"类 (ConcreteComponent)Public Class Person Private myName As String Public Sub New() End Sub Public Sub New(ByVal name As String) myName = name End Sub Public Overridable Sub Show() Console.WriteL...原创 2020-05-25 19:23:03 · 149 阅读 · 0 评论 -
004Visual Basic代理模式
1. 代理接口Public Interface GiveGift Sub GiveDolls() Sub GiveFlowers() Sub GiveChocolate()End Interface2.追求者类Public Class Pursuit Implements GiveGift Private mName As String Public Property Name As String Get ...原创 2020-05-25 19:44:35 · 173 阅读 · 0 评论 -
005Visual Basic工厂模式
1.雷锋及其继承类'雷锋类Public Class LeiFeng Public Sub Sweep() Console.WriteLine("扫地") End Sub Public Sub Wash() Console.WriteLine("洗衣") End Sub Public Sub BuyRice() Console.WriteLine("买米") End SubEnd Class'...原创 2020-05-25 19:55:29 · 130 阅读 · 0 评论 -
006Visual Basic原型模式
1.工作经历类Public Class myResume Implements ICloneable '实现原型模式 Private name As String Private sex As String Private age As String Private timeArea As String Private company As String '引用工作经历对象 Private work As WorkExperien...原创 2020-05-25 20:04:37 · 312 阅读 · 0 评论 -
007Visual Basic模板方法模式
1.模板及子类'模板类Public MustInherit Class TestPaper Public Sub TestQuestion1() Console.WriteLine("杨过得到,后来给了郭靖,炼成倚天剑、屠龙刀的玄铁可是【】a.球磨铸铁 b.马口铁 c.高速合成金钢 d.碳素纤维") Console.WriteLine("答案:" & Answer1()) End Sub Public Sub TestQuesti...原创 2020-05-26 07:24:37 · 126 阅读 · 0 评论 -
008Visual Basic外观模式
1.四个子系统类Public Class SubSystemOne Public Sub New() End Sub Public Sub MethodOne() Console.WriteLine("子系统方法一") End SubEnd ClassPublic Class SubSystemTwo Public Sub New() End Sub Public Sub MethodTwo() Cons..原创 2020-05-26 07:35:11 · 109 阅读 · 0 评论 -
009Visual Basic建造者模式
1.窗体中加入一个PictureBox,一个按钮2.建造者及子类Public MustInherit Class PersonBuilder Protected myGraphics As Graphics Protected myPen As Pen Public Sub New(ByVal g As Graphics, ByVal p As Pen) Me.myGraphics = g Me.myPen = p En...原创 2020-05-26 08:31:37 · 136 阅读 · 0 评论 -
010Visual Basic二谈建造者模式
009Visual Basic建造者模式下面的示例是一个控制台程序1.建造者‘父类Public MustInherit Class Builder Public MustOverride Sub BuildPartA() Public MustOverride Sub BuildPartB() Public MustOverride Function GetResult() As productEnd Class’子一Public Class Concrete原创 2020-05-26 08:44:56 · 121 阅读 · 0 评论 -
011Visual Basic 抽象工厂模式
1.两个对象Public Class User Private _id As String Public Property ID As String Get Return _id End Get Set(ByVal value As String) _id = value End Set End Property Private _name As St...原创 2020-05-26 15:39:12 · 158 阅读 · 0 评论 -
011Visual Basic 状态模式
1.抽象状态及具体状态Public MustInherit Class State Public MustOverride Sub WriteProgram(ByVal w As Work)End ClassPublic Class ForenoonState Inherits State Public Overrides Sub WriteProgram(ByVal w As Work) If w.Hour < 13 Then ...原创 2020-05-26 16:02:10 · 180 阅读 · 0 评论 -
012Visual Basic适配器模式
1.Target(这是客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口)'这是客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口Public Class Target Public Overridable Sub Request() Console.WriteLine("普通请求") End SubEnd Class2.Adaptee(需要适配的类)'需要适配的类Public Class Adaptee Public...原创 2020-05-26 19:47:48 · 140 阅读 · 0 评论 -
013Visual Basic适配器模式之篮球翻译适配器
1.球员类'球员类Public MustInherit Class Player Protected name As String Public Sub New(ByVal n As String) Me.name = n End Sub Public MustOverride Sub Attack() Public MustOverride Sub Defence()End Class'前锋Public Class Forward..原创 2020-05-26 20:02:35 · 230 阅读 · 0 评论 -
014 Visual Basic 备忘录模式
1.发起人( Originator)类明儿再来吧原创 2020-05-26 20:17:44 · 137 阅读 · 0 评论 -
015 Visual Basic 备忘录之游戏进度
1.游戏角色类Public Class 游戏角色 '生命力 Private vit As Integer Public Property Vitality Get Return vit End Get Set(ByVal value) vit = value End Set End Property '攻击力 Private atk As I.原创 2020-05-27 08:07:12 · 103 阅读 · 0 评论 -
016 Visual Basic 组合模式
1.Compent类'组合中的对象声明接口,实现所有类的共有接口的默认行为。声明一个接口用于访问和管理Component的子部件Public MustInherit Class Component Protected name As String Public Sub New(ByVal n As String) Me.name = n End Sub Public MustOverride Sub Add(ByVal c As Componen.原创 2020-05-27 08:21:13 · 165 阅读 · 0 评论 -
017 Visual Basic 组合模式之公司管理系统
1.公司类抽象类或接口Public MustInherit Class Company Protected name As String Public Sub New(ByVal myName As String) Me.name = myName End Sub Public MustOverride Sub add(ByVal c As Company) Public MustOverride Sub Remove(ByVal c As .原创 2020-05-27 08:28:53 · 254 阅读 · 0 评论 -
018 Visual Basic迭代器模式
1.lterator迭代器抽象类Public MustInherit Class Iterator Public MustOverride Function First() As Object Public MustOverride Function NextOne() As Object Public MustOverride Function IsDone() As Boolean Public MustOverride Function CurrentItem..原创 2020-05-27 08:43:52 · 160 阅读 · 0 评论 -
019 Visual Basic 单例模式
Public Class Singleton Private Shared myInstance As Singleton '堵死外界利用New创建此类实例 Private Sub New() End Sub '此方法是获得本实实例的唯一全局访问点 Public Shared Function GetInstance() If myInstance Is Nothing Then myInstance = New...原创 2020-05-27 11:30:58 · 112 阅读 · 0 评论 -
020 Visual Basic 单例模式之单个子窗体
1.子窗体代码Public Class FormToolbox Private Shared ftb As New FormToolbox Private Sub New() InitializeComponent() End Sub Public Shared Function GetIntance() As FormToolbox ftb.MdiParent = Form1.ActiveForm If (ft..原创 2020-05-27 11:36:47 · 224 阅读 · 0 评论 -
021 Visual Basic 桥接模式
1.Implementor类Public MustInherit Class Implementor Public MustOverride Sub Operation()End Class2.ConcretelmplementorA和ConcretelmplementorB等派生类Public Class ConcreteImplementorA Inherits Implementor Public Overrides Sub Operation() ..原创 2020-05-27 14:49:08 · 143 阅读 · 0 评论 -
022 Visual Basic 桥接模式之手机
1.手机软件抽象类及具体类Public MustInherit Class HandsetSoft Public MustOverride Sub Run()End ClassPublic Class HandsetGame Inherits HandsetSoft Public Overrides Sub Run() Console.WriteLine("运行手机游戏") End SubEnd ClassPublic Class Ha..原创 2020-05-27 14:52:32 · 186 阅读 · 0 评论 -
023 Visual Basic 命令模式
1.Command类,用来声明执行操作的接口。Public MustInherit Class Command Protected mReceiver As Receiver Public Sub New(ByVal rec As Receiver) Me.mReceiver = rec End Sub Public MustOverride Sub Execute()End Class2.ConcreteCommand类,将一个接收者对象绑...原创 2020-05-27 15:19:36 · 212 阅读 · 0 评论 -
024 Visual Basic 命令模式之烤串
1.抽象命令及具体命令Public MustInherit Class Command Protected myReceiver As Barbecuer Public Sub New(ByVal rec As Barbecuer) Me.myReceiver = rec End Sub Public MustOverride Sub ExecuteCommand()End ClassPublic Class BakeMuttonComm..原创 2020-05-27 15:35:44 · 215 阅读 · 0 评论 -
025 Visual Basic 职责链模式
1.管理者抽象类'管理者抽象类,即HandlerPublic MustInherit Class Manager '管理者 Protected name As String '管理者上级 Protected superior As Manager Public Sub New(ByVal n As String) Me.name = n End Sub Public Sub SetSuperior(ByVal su...原创 2020-05-28 09:02:07 · 118 阅读 · 0 评论 -
026 Visual Basic中介者模式
1.Mediator抽象及具体类Public MustInherit Class Mediator Public MustOverride Sub send(ByVal message As String, ByVal colleague As Colleague)End ClassPublic Class ConcreteMediaotr Inherits Mediator Private _Colleague1 As Concretecolleague1 P.原创 2020-05-28 09:19:56 · 126 阅读 · 0 评论 -
027 Visual Basic享元模式
1.FlyWeight抽象类及具体类Public MustInherit Class Flyweight Public MustOverride Sub Operation(ByVal extrinsicstate As Integer)End Class'继承FleyWeight超类或实现FlyWeight接口,并为内部增加存储空间Public Class ConcreteFlyweight Inherits Flyweight Public Overrides...原创 2020-05-28 10:19:04 · 140 阅读 · 0 评论 -
028 Visual Basic享元模式之共享网站
1.用户类Public Class User Private _name As String Public Property name As String Get Return _name End Get Set(ByVal value As String) _name = value End Set End Property Public Sub New(B原创 2020-05-28 10:22:12 · 149 阅读 · 0 评论 -
029 Visual Basic 解释器模式
1. AbstractExpression(抽象表达式),声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。Public MustInherit Class AbstractExpression Public MustOverride Sub Interpret(ByVal context As Context)End Class2. TerminalExpression(终结符表达式),实现与文法中的终结符相关联的解释操作。实现抽象表达式中所要求的接口,主...原创 2020-05-28 10:34:42 · 203 阅读 · 0 评论 -
030 Visual Basic 解释器模式之音乐解释器
1.演奏内容类( context)Public Class PlayContext Private _text As String Public Property PlayText As String Get Return _text End Get Set(ByVal value As String) _text = value End Set End Pro...原创 2020-05-28 10:59:42 · 148 阅读 · 0 评论 -
031 Visual Basic 访问者模式
1.Visitor类,为该对象结构中ConcreteElement的每一个类声明一个Visit操作。Public Interface Visitor Sub VisitConcreteElementA(ByVal ceA As concreteElementA) Sub VisitConcreteElementB(ByVal ceB As ConcreteElementB)End Interface2. ConcreteVisitor1和ConcreteVisitor2...原创 2020-05-28 15:58:15 · 141 阅读 · 0 评论 -
032 Visual Basic 访问者模式之男女之别
1.‘状态’的抽象类和‘人’的抽象类Public MustInherit Class Action Public MustOverride Sub GetManConclusion(ByVal concreteElementA As Man) Public MustOverride Sub GetWomanConclusion(ByVal concreteElementB As Woman)End ClassPublic MustInherit Class Person ..原创 2020-05-28 16:15:36 · 226 阅读 · 0 评论