使用抽象工厂设计模式的国际象棋应用程序类设计
使用抽象工厂设计模式设计的棋类应用程序的类设计。
引言
以下文章是一个基础类,可用于开发棋盘应用程序。该应用程序的设计基于抽象工厂设计模式。
背景
我撰写这篇文章是对我之前文章的更新,该文章名为"易于使用的 ASP.NET 棋盘控件"。 很多人抱怨我没有使用面向对象的方法 - 因此,我现在为任何想要开发棋盘应用程序的人构建了这个基本的组件框架。
Using the Code
该代码使用了抽象工厂模式 - 我构建了一个主 ChessFactory
类,然后构建了两个从 ChessFactory
类继承的类,名为 WhiteChessFactory
和 BlackChessFactory
。 为了展示这些概念,我构建了一个非常基本的 Windows 应用程序,询问用户是否想要白棋或黑棋。(请注意,实际的棋盘应用程序尚未添加 - 这只是应用程序的基本类结构。)
Public MustInherit Class ChessFactory
Public MustOverride Function CreateKing() As King
Public MustOverride Function CreateQueen() As Queen
Public MustOverride Function CreateRook() As Rook
Public MustOverride Function CreateBishop() As Bishop
Public MustOverride Function CreateKnight() As Knight
Public MustOverride Function CreatePawn() As Pawn
End Class
Public Class WhiteChessFactory : Inherits ChessFactory
Public Overrides Function CreateKing() As King
Return New WhiteKing()
End Function
Public Overrides Function CreateQueen() As Queen
Return New WhiteQueen()
End Function
Public Overrides Function CreateRook() As Rook
Return New WhiteRook()
End Function
Public Overrides Function CreateBishop() As Bishop
Return New WhiteBishop()
End Function
Public Overrides Function CreateKnight() As Knight
Return New WhiteKnight()
End Function
Public Overrides Function CreatePawn() As Pawn
Return New WhitePawn()
End Function
End Class
对于每个棋子,都创建了一个单独的类。
关注点
棋类设计提供了一个接口,用于创建家族或相关或依赖对象,而无需指定它们的具体类。
历史
如果有人有兴趣向这些类添加一些额外的功能以构建实际的棋类应用程序,请通过 louwgi@avusa.co.za 与我联系。