设计模式——五子棋 Welcome To Ryan's Home

Gobang的设计之路

  • 设计要求:仿照书上围棋的设计,至少使用5种设计模式,设计一款五子棋。

  • 设计思路:抽象工厂模式、备忘录模式、职责链 模式、单例模式和享元模式。其中抽象工厂模式用于实现主题工厂的创建,给用户提供多种主题模式供用户选择;备忘录模式用于给用户提供悔棋功能;职责链模式给系统和用户设置不同职责,控制用户悔棋次数;单例模式用于创建唯一棋子;享元模式用于设计五子棋的棋子类。 —
  • 设计模式结构视图
    1. 抽象工厂模式 抽象工厂模式结构视图
    2. 备忘录模式 备忘录模式结构视图
    3. 单例模式 单例模式结构视图
    4. 职责链模式 职责链模式结构视图
    5. 享元模式 享元模式结构视图
  • 实例类图
  1. 抽象工厂模式 抽象工厂模式

  2. 备忘录模式 备忘录模式

  3. 单例模式 在这里插入图片描述

  4. 职责链模式 在这里插入图片描述

  5. 享元模式 享元模式


  • 设计文档 设计文档

  • 界面实现
    1. 登陆界面 登陆界面
  1. 主界面 主界面

  2. 游戏界面 游戏界面

  3. 主题二界面 theme2


  • 代码补充说明

职责链模式类图补充代码:


/**
 * 职责链模式
 */
public abstract class Officer {

	protected Officer successor;

	public void setSuccessor(Officer officer) {
		successor = officer;
	}
	//抽象方法:判断账户类别
	public abstract boolean dealAccount(int account);
}

单例模式类图补充代码:

import java.awt.Image;

import javax.swing.ImageIcon;


/**
 * 运用单例模式,定义白棋棋子类
 */
public class WhiteChess implements Chess {
    private static final WhiteChess whiteChess = new WhiteChess();
    private Image whitechessSign;

    private WhiteChess() {
        whitechessSign = new ImageIcon("images/white.png").getImage();
    }

    public static WhiteChess get_WhiteChess() {
        return whiteChess;
    }

    public void sign(ChessPosition position) {
    }

    @Override
    public Image get_Sign() {
        return whitechessSign;
    }
}

详细代码

  • 详细设计文档请见: http://download.csdn.net/download/qq_41422448/12083705
  • 详细代码请见: http://download.csdn.net/download/qq_41422448/12083705


欢迎查看我的CSDN博客:Welcome To Ryan’s Home



Ryan.G.Kingwechat Ryan.G.Kingqq Ryan.G.Kingalipay