首页 > 其他分享 >每日总结33

每日总结33

时间:2023-11-14 09:44:24浏览次数:28  
标签:总结 33 每日 Coordinates int Chess ChessFactory new public

软件设计                  石家庄铁道大学信息学院

 

实验13:享元模式

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

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

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

 

[实验任务一]:围棋

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

实验要求:

1. 提交类图;

 

2. 提交源代码;

 

BlackChess.java

package ruanshe13;

public class BlackChess extends Chess{

 

     @Override

     public String getColor() {

         // TODO 自动生成的方法存根

         return "黑";

     }

     

 }

Chess.java

package ruanshe13;

 

abstract class Chess {

    public abstract String getColor();

    public void locate(Coordinates co) {

        System.out.println(this.getColor()+"棋:"+co.getX()+","+co.getY());

    }

}

ChessFactory.java

package ruanshe13;

import java.util.Hashtable;

 

public class ChessFactory {

    private static ChessFactory instance=new ChessFactory();

    private static Hashtable ht;

    public ChessFactory() {

        ht=new Hashtable();

        Chess black,white;

        black=new BlackChess();

        ht.put("b", black);

        white=new WhiteChess();

        ht.put("w", white);

    }

    public static ChessFactory getInstance() {

        return instance;

    }

    public static Chess getChess(String color) {

        return (Chess)ht.get(color)

;    }

}

Client,java

package ruanshe13;

 

public class Client {

 

    public static void main(String[] args) {

        Chess black1,black2,black3,white1,white2;

        ChessFactory factory;

        factory = ChessFactory.getInstance();

        black1 = ChessFactory.getChess("b");

        black2 = ChessFactory.getChess("b");

        black3 = ChessFactory.getChess("b");

        white1 = ChessFactory.getChess("w");

        white2 = ChessFactory.getChess("w");

        black1.locate(new Coordinates(3, 3));

        black2.locate(new Coordinates(4, 1));

        black3.locate(new Coordinates(2, 5));

        white1.locate(new Coordinates(-2, 3));

        white2.locate(new Coordinates(1, 5));

    }

}

Coordinates.java

package ruanshe13;

//外部状态类——坐标类

class Coordinates {

 

    private int x;

    private int y;

 

    public Coordinates(int x,int y) {

        // TODO Auto-generated constructor stub

        this.x = x;

        this.y = y;

    }

 

    public int getX() {

        return x;

    }

 

    public void setX(int x) {

        this.x = x;

    }

 

    public int getY() {

        return y;

    }

 

    public void setY(int y) {

        this.y = y;

    }

}

WhiteChess.java

package ruanshe13;

 

public class WhiteChess extends Chess{

 

    @Override

    public String getColor() {

        // TODO 自动生成的方法存根

        return "白";

    }

 

}

3.注意编程规范;

4.要求用简单工厂模式和单例模式实现享元工厂类的设计

 

 

标签:总结,33,每日,Coordinates,int,Chess,ChessFactory,new,public
From: https://www.cnblogs.com/mine-my/p/17830933.html

相关文章

  • 20231114学习总结
    推荐参考书:[1]范淼,李超.Python机器学习及实践,清华大学出版社.[2]PeterHarrington.机器学习实战,人民邮电出版社。《机器学习B实验任务书1》一、上机安排时间地点第10周周一2023.11.06第6-7节九实4-3、4-4第11周周一2023.11.13第6-7节九实......
  • 每日总结32
    软件设计                 石家庄铁道大学信息学院 实验12:外观模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解外观模式的动机,掌握该模式的结构;2、能够利用外观模式解决实际问题。 [实验任务一]:计算机开启在计算机主机(Mainframe)......
  • 每日博客
    今天写了软件设计的享元模式和外观模式  ......
  • 反思与总结
    对于考出这要的成绩我表示全权地负责,因为课下时间未能将时间花在如何提高自己的java水平,才导致到考试时手忙脚乱到处翻找资料了解如何做题。从此次过程中我也发现要既要有“急于求成”的能够更为快速的解决好自身不会的问题,与此同时还要有谦虚的态度来学习了一切的java的知识和体......
  • 2023NOIP A层联测30 总结
    2023NOIPA层联测30总结\(T1\)给定一个序列\(a\),有\(m\)次操作\(l,r,v\),表示将\([l,r]\)内的每个\(a_i\)变为\(\max(a_i,v)\)\(n\le10^5,m\le10^7\)看到\(n\le10^5,m\le10^6\),赶紧打一个\(O(m\log_2n)\)的线段树做法,在看到\(20pts\)的\(l......
  • 分级考试总结
    今天下午进行了Java分级测试,对于此次测试认识到了自己的诸多不足,对于多个数据表的增删改查以及项目功能的实现有很多问题,还需要继续改进学习,提升思维方式,在有限的时间内做到多个表的链接,增删改查操作,以及实现特殊的项目功能,需要改进固有的建立项目方式,这一点是以后的学习生活必须......
  • 11月13日总结
    一.今天做了什么上午没课,下午java课,做了一套试卷,做的不太理想,首先来说是写的太慢了,其实时间充足的话也能写完。我发现在构思上花费的时间很多,几乎是写一会代码就得停下来构思一下,这样很浪费时间,应该在开始的时候就构思好,最好在纸上画一下大概的流程图,然后再开始写,写大妈的时候也......
  • 总结
    这次相较于上周有所进步,但进步不大,在主键设置方面出了问题,修改课程信息时,主键不能为空,信息无法修改。在增删改上面已经没有太大的问题,主要还是不熟练,在一些细节方面总是出错。在查方面还不会,还需要继续学习并加以练习。没有做出来还是因为不够熟练,还是感觉这个太难了,总之就是练习......
  • 10.13日分析总结
    今天又是王老师的分级自评测试,在最近的编程随堂测试中,我没有达到老师的要求,这让我深感失望和挫败。虽然有那么一点点小超纲,但是大部分功能还是能实现的,即使如此今天随堂测验的时候还是有些许吃力,依旧出现了一些小问题。回顾分析下来,是自己的练习不够,也就是王老师所说的熟......
  • 10/13分析总结
    不会,练得少,功能需求之间不明白。在最近的编程随堂测试中,我没有达到老师的要求,这让我深感失望和挫败。虽然有那么一点点小超纲,但是大部分功能还是能实现的,即使如此今天随堂测验的时候还是有些许吃力,依旧出现了一些小问题。回顾分析下来,是自己的练习不够,也就是王老师所说的熟练度不......