首页 > 其他分享 >11.7日报

11.7日报

时间:2024-11-27 10:45:27浏览次数:10  
标签:享元 日报 11.7 color int GoStone GoStoneFactory public

完成设计模式实验十三,以下为实验内容:

实验13:享元模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解享元模式的动机,掌握该模式的结构;

2、能够利用享元模式解决实际问题。

 
   

 

 

[实验任务一]:围棋

设计一个围棋软件,在系统中只存在一个白棋对象和一个黑棋对象,但是它们可以在棋盘的不同位置显示多次。

实验要求:

1.  提交类图;

 

2.  提交源代码;

  1. // 享元接口
    interface GoStone {
        void display(int x, int y);
    }

    // 白棋享元
    class WhiteGoStone implements GoStone {
        private String color;

        public WhiteGoStone() {
            this.color = "White";
        }

        @Override
        public void display(int x, int y) {
            System.out.println("White stone at (" + x + ", " + y + ")");
        }
    }

    // 黑棋享元
    class BlackGoStone implements GoStone {
        private String color;

        public BlackGoStone() {
            this.color = "Black";
        }

        @Override
        public void display(int x, int y) {
            System.out.println("Black stone at (" + x + ", " + y + ")");
        }
    }

    // 享元工厂(单例模式 + 简单工厂模式)
    class GoStoneFactory {
        private static GoStoneFactory instance = new GoStoneFactory();
        private GoStone whiteStone;
        private GoStone blackStone;

        private GoStoneFactory() {
            whiteStone = new WhiteGoStone();
            blackStone = new BlackGoStone();
        }

        public static GoStoneFactory getInstance() {
            return instance;
        }

        public GoStone getStone(String color) {
            if ("White".equals(color)) {
                return whiteStone;
            } else if ("Black".equals(color)) {
                return blackStone;
            }
            return null;
        }
    }

    // 棋盘类
    class GoBoard {
        public void placeStone(int x, int y, String color) {
            GoStone stone = GoStoneFactory.getInstance().getStone(color);
            stone.display(x, y);
        }
    }

    // 客户端代码
    public class Client {
        public static void main(String[] args) {
            GoBoard board = new GoBoard();
            board.placeStone(1, 1, "White");
            board.placeStone(2, 2, "Black");
            board.placeStone(3, 3, "White");
            // 黑棋和白棋对象只会各创建一次,之后会重复使用
       
    }
    }

 

3.注意编程规范;

标签:享元,日报,11.7,color,int,GoStone,GoStoneFactory,public
From: https://www.cnblogs.com/lijianlongCode13/p/18571791

相关文章

  • 11.8日报
    背了些单词,之后进行了人机交互的实验,完成了添加人员模块:以下为今日完成部分代码:namespacetest1{partialclassaddmanForm{///<summary>///Requireddesignervariable.///</summary>privateSystem.ComponentModel.IConta......
  • 11.11日报
    今天完成了设计模式的实验十四,以下为实验内容:实验14:代理模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解代理模式的动机,掌握该模式的结构;2、能够利用代理模式解决实际问题。     [实验任务一]:婚介所婚介所其实就是找对象的一个代理,请仿......
  • 10.25日报
    今天完成了人机交互实验的部分内容,以下为部分代码:namespacetest1{partialclassForm1{///<summary>///必需的设计器变量。///</summary>privateSystem.ComponentModel.IContainercomponents=null;///<summary>......
  • 10.28日报
    今天完成了设计模式的实验,以下为今天的实验内容:实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。     [实验任务一]:双向适配器实现一个双向适配器,使得......
  • 10.29日报
    今天继续进行mes系统开发,准备进行一阶段验收,主要做一个车间内班组之间的流程,以下为我们小组探讨出的主要流程:接收任务:系统接收生产部下达的生产任务。生成产品批次二维码。领取任务:班长扫描二维码领取生产任务。根据每个人的生产效率进行派单。工人领取任务:工人扫描自己的二维......
  • 10.30日报
    今天完成设计模式的实验,以下为实验内容:实验9:桥接模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。     [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个......
  • 10.31日报
    完成设计模式实验:实验10:组合模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。     [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。实验要......
  • 10.18日报
    上了软件构造和企业文化的课,下午上了人机交互的课,完成了部分实验内容,做了一个主界面以下为部分代码:namespacetest1{partialclassloginForm{///<summary>///Requireddesignervariable.///</summary>privateSystem.ComponentMode......
  • 10.21日报
    上午进行了软件设计的实验课,以下为实验内容:实验6:原型模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解原型模式的动机,掌握该模式的结构;2、能够利用原型模式解决实际问题。     [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用......
  • 10.17日报
    今天进行了机器学习B的实验,以下为实验内容:上机实验一:数据准备与模型评估1、实验目的熟悉Python的基本操作,掌握对数据集的读写实现、对模型性能的评估实现的能力;加深对训练集、测试集、N折交叉验证、模型评估标准的理解。2、实验内容(1)利用pandas库从本地读取iris数据......