[高级软件工程教学]个人第5次班级作业评分

作业地址

https://edu.cnblogs.com/campus/fzu/AdvancedSoftwareEngineering/homework/1409

评分细则

  • 篇博客随笔;(5 points)
  • 类图(5 points)、关键类java源码及注释(6 points);(每题11 points)

评分结果

学号 B1 T1-1 T1-2 T2-1 T2-2 T3-1 T3-2 T4-1 T4-2 总分
*320034 5 6 5 6 5 3.5 5 4.5 5 45
*320036 2 4 5 3 4 4 5 4 4 35
*320053 5 5.5 5 5.5 5 5.5 5 5 5 46.5
*320074 5 6 5 6 5 6 5 5.5 5 48.5
*320075 5 6 5 6 5 6 5 5.5 4.5 48
*320076 5 6 5 6 5 6 5 5.5 5 48.5
*320077 5+3 6 5 5.5 5 5.5 5 6 5 51
*320078 5 4.5 4.5 4 4.5 4 4 3 5 38.5
*320079 5 6 5 6 5 6 5 5.5 5 48.5
*327033 5 6 5 6 5 6 5 5.5 5 48.5
*327037 5 5 5 4 4.5 4 5 5 5 42.5
*327041 5 5 5 4.5 5 2.5 5 4 5 41
*327078 5 5 5 5 5 2.5 4 4 5 40.5
*327109 5 5.5 5 6 5 6 5 5.5 5 48
*327112 5 5.5 5 6 5 6 5 5.5 5 48
*327010 5 6 5 5 5 6 5 5.5 4.5 47

总结

相对于前两次作业,本次作业整体完成情况有所提高,对类图的细节把握准确,主要问题是代码实现部分,下面列出存在的问题:
1、一些同学在某些模式最关键部分没有给出代码实现的细节,甚至没有文字说明。例如

  • 在第二题Command模式作业

某公司欲开发一个基于Windows平台的公告板系统,系统提供主菜单(Menu)其中有菜单项(MenuItem)。通过Menu类的addMenuItem()方法增加菜单项。菜单项的打开方法是click(),每个 菜单项包含一个抽象命令类,具体命令类包括OpenCommand()、CreateCommand()、EditCommand()等,命令类具有一个execute()方法,用于调用公告板系统界面类(BoardScreen())的open()、create()、edit())等方法。使用Command模式来设计。

BoardScreen为模式中的Receiver类;MenuItem为模式中的Invoker类。一些同学在Command中声明了BoardScreen对象,但是没有体现在对象在何时被初始化,也没有任何参数传递过程。

public class OpenCommand extends AbstractCommand{
    private BoardScreen boardScreen;
    public void excute(){}
}  

如上述代码,这显然无法体现该模式的特点。

  • 再如,在第三题Mediator模式作业

某论坛系统欲增加一个虚拟聊天室,允许论坛会员通过该聊天室进行信息交流,普通会员(CommonMember)可以给其他会员发送文本信息,钻石会员(DiamondMember)可以给其他会员发送文本和图片信息。该聊天室可以对不雅字符进行过滤,如“TMD”等字符,还可以对发送图片大小进行控制。使用Mediator模式来设计。

中介者类:聊天室;同事类:会员。

public class DiamondMember extends Member
{ 
   public DiamondMember(String name)
   {
       super(name); 
   }
   public void sendText() 
   {
    } 
...
}

上段代码中,DiamondMember为砖石会员实现类,该类中sendText()没有任何实现细节,同事是如何通过中介者实现彼此之间的通信?

public class Chatroom extends AbstractChatroom
{
  public void sendText()
  {
  //发送文本  
  }
...

本段代码中Chatroom为中介类的具体实现类,sendText()同样也没有任何细节,所以这一段代码表述,并不能展示任何该模式的特点。

2、个别未使用markdown格式编辑,特别是代码段部未为用markdown的代码注释
3、个别同学的所有模式都没有测试类

设计模式的作业已近到一个阶段,作业中的这些模式都是比较常用的设计模式,希望同学们可以总结这几次的作业,对这作业中存在的问题进行分析,若有任何困惑,大家可以在班级群里交流。

原文地址:https://www.cnblogs.com/stephenchung/p/8018268.html