结构型/享元模式/ChesePiece.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace DesignModeConsole.结构型.享元模式;

/*
假如开发一个棋牌游戏(比如象棋)。一个游戏厅中有成千上万个“房间”,每个房
间对应一个棋局。棋局要保存每个棋子的数据,比如:棋子类型(将、相、士、炮等)、棋
子颜色(红方、黑方)、棋子在棋局中的位置。利用这些数据,我们就能显示一个完整的棋
盘给玩家。具体的代码如下所示。其中,ChessPiece 类表示棋子,ChessBoard 类表示一
个棋局,里面保存了象棋中 30 个棋子的信息。

 */

#region 使用享元之前,充斥大量重复的对象

/// <summary>
/// 棋子类
/// </summary>
public class ChesePiece1
{
    public ChesePiece1(int id, string name, int color, int positinX, int positinY)
    {
        Id = id;
        Name = name;
        Color = color;
        PositinX = positinX;
        PositinY = positinY;
    }

    /// <summary>
    /// 标识
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 棋子名
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 颜色 0代表白色 1代表黑色
    /// </summary>
    public int Color { get; set; }

    /// <summary>
    /// x轴坐标
    /// </summary>
    public int PositinX { get; set; }

    /// <summary>
    /// y轴坐标
    /// </summary>
    public int PositinY { get; set; }
}

/// <summary>
/// 棋局
/// </summary>
public class CheseBoard1
{
    private readonly Dictionary<int, ChesePiece1> dict = new Dictionary<int, ChesePiece1>();

后面还有 119 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。