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(ByVal name As String)
Me.name = name
End Sub
End Class
2.网站抽象类及具体类
Public MustInherit Class WebSite
Public MustOverride Sub Use(ByVal user As User)
End Class
Public Class ConcreteWebSite
Inherits WebSite
Private name As String = ""
Public Sub New(ByVal name As String)
Me.name = name
End Sub
Public Overrides Sub Use(ByVal user As User)
Console.WriteLine("网站分类:" + name + ", 用户:" + user.name)
End Sub
End Class
3.享元工厂类
Public Class WebSiteFactory
Private flyweights As New Hashtable
Public Function GetWebSiteFactory(ByVal key As String)
If Not flyweights.ContainsKey(key) Then
flyweights.Add(key, New ConcreteWebSite(key))
End If
Return flyweights(key)
End Function
Public Function GetWebSiteCount() As Integer
Return flyweights.Count
End Function
End Class
3.客户端
'前段,变量递减怎么弄
Module Module1
Sub Main()
Dim f As New WebSiteFactory
Dim fx As WebSite = f.GetWebSiteFactory("产品展示")
fx.Use(New User("小蔡"))
Dim fy As WebSite = f.GetWebSiteFactory("产品展示")
fy.Use(New User("大鸟"))
Dim fz As WebSite = f.GetWebSiteFactory("产品展示")
fz.Use(New User("娇娇"))
Dim fl As WebSite = f.GetWebSiteFactory("博客")
fl.Use(New User("老顽童"))
Dim fm As WebSite = f.GetWebSiteFactory("博客")
fm.Use(New User("桃谷老仙"))
Dim fn As WebSite = f.GetWebSiteFactory("博客")
fn.Use(New User("南海鳄神"))
Console.WriteLine("网站分类总数{0}", f.GetWebSiteCount)
Console.Read()
End Sub
End Module