网站制作广在网站中搜索关键字
网站制作广,在网站中搜索关键字,手机定制app,百度html代码实验19#xff1a;中介者模式
本次实验属于模仿型实验#xff0c;通过本次实验学生将掌握以下内容#xff1a;
1、理解中介者模式的动机#xff0c;掌握该模式的结构#xff1b;
2、能够利用中介者模式解决实际问题。
[实验任务]#xff1a;虚拟聊天室
在“虚拟聊天…实验19中介者模式
本次实验属于模仿型实验通过本次实验学生将掌握以下内容
1、理解中介者模式的动机掌握该模式的结构
2、能够利用中介者模式解决实际问题。
[实验任务]虚拟聊天室
在“虚拟聊天室”实例中增加一个新的具体聊天室类和一个新的具体会员类要求如下
1. 新的具体聊天室中发送的图片大小不得超过20M。
2. 新的具体聊天室中发送的文字长度不得超过100个字符。
3. 新的具体会员类可以发送图片信息和文本信息。
4. 新的具体会员类在发送文本信息时可以在信息后加上时间。
修改客户端测试类注意原有系统类代码和客户端代码的修改。 源代码
/*** 抽象聊天室*/
public abstract class AbstractChatroom
{public abstract void register(Member member);public abstract void sendText(String from,String to,String message);public abstract void sendImage(String from,String to,String image);
}import java.util.Hashtable;public class ChatGroup extends AbstractChatroom
{private Hashtable members new Hashtable();Overridepublic void register(Member member){if (!members.contains(member)){members.put(member.getName(), member);member.setChatroom(this);}}Overridepublic void sendText(String from, String to, String message){Member member (Member) members.get(to);String newMessage message;//模拟不雅字符过滤newMessage message.replaceAll(日, *);member.receiveText(from, newMessage);}Overridepublic void sendImage(String from, String to, String image){Member member (Member) members.get(to);//模拟图片大小判断if (image.length() 5){System.out.println(图片太大发送失败);} else{member.receiveImage(from, image);}}
}import java.util.Hashtable;/*** 新的具体聊天室* author mendianyu*/
public class AdvancedChatGroup extends AbstractChatroom
{private Hashtable members new Hashtable();Overridepublic void register(Member member){if (!members.contains(member)){members.put(member.getName(), member);member.setChatroom(this);}}Overridepublic void sendText(String from, String to, String message){Member member (Member) members.get(to);//消息的文字长度不得超过100if (message.length() 100){System.out.println(消息太长了发送失败!);} else{member.receiveText(from, message);}}Overridepublic void sendImage(String from, String to, String image){Member member (Member) members.get(to);//图片大小不得超过20Mif (image.length() 20){System.out.println(图片太大了发送失败!);} else{member.receiveImage(from, image);}}
}/*** 抽象用户类*/
public abstract class Member
{protected AbstractChatroom chatroom;protected String name;public Member(String name){this.name name;}public String getName(){return name;}public void setName(String name){this.name name;}public AbstractChatroom getChatroom(){return chatroom;}public void setChatroom(AbstractChatroom chatroom){this.chatroom chatroom;}public abstract void sendText(String to, String message);public abstract void sendImage(String to, String image);public void receiveText(String from, String message){System.out.println(from 发送文本给 this.name 内容为 message);}public void receiveImage(String from, String image){System.out.println(from 发送图片给 this.name 内容为 image);}
}/*** 普通用户类*/
public class CommonMember extends Member
{public CommonMember(String name){super(name);}Overridepublic void sendText(String to, String message){System.out.println(普通会员发送信息);//发送文本chatroom.sendText(name, to, message);}Overridepublic void sendImage(String to, String image){System.out.println(普通会员不能发送图片);}
}/*** 钻石会员类*/
public class DiamondMember extends Member
{public DiamondMember(String name){super(name);}Overridepublic void sendText(String to, String message){System.out.println(钻石会员发送信息);//发送文本chatroom.sendText(name, to, message);}Overridepublic void sendImage(String to, String image){System.out.println(钻石会员发送图片);//发送图片chatroom.sendImage(name, to, image);}
}import java.text.SimpleDateFormat;
import java.util.Date;/*** 铂金会员** author mendianyu*/
public class AdvancedMember extends Member
{public AdvancedMember(String name){super(name);}Overridepublic void sendText(String to, String message){System.out.println(铂金会员发送文本:);//在消息后面加上时间SimpleDateFormat dateFormat new SimpleDateFormat(HH:mm:ss);String timestamp dateFormat.format(new Date());message [ timestamp ];chatroom.sendText(name, to, message);}Overridepublic void sendImage(String to, String image){System.out.println(铂金会员发送图片);chatroom.sendImage(name, to, image);}
}public class Client
{public static void main(String[] args){//实例化一个新的聊天室AbstractChatroom advancedChatroom new AdvancedChatGroup();Member member1, member2, member3, member4, member5;member1 new CommonMember(张三);member2 new DiamondMember(李四);//实例化新的会员member3 new AdvancedMember(王五);//加入聊天室advancedChatroom.register(member1);advancedChatroom.register(member2);advancedChatroom.register(member3);member1.sendText(李四, 干嘛呢你俩);member1.sendText(王五, 干嘛呢你俩);member2.sendText(张三, 我在写作业);//模拟图片超过20Mmember2.sendImage(张三, 11111111111111111111111111111);member3.sendText(张三, 我在打游戏);member3.sendImage(张三, 五连绝世);member1.sendText(王五, 别打游戏了快出来玩);//文字长度超过100发送失败member3.sendText(张三,1. 新的具体聊天室中发送的图片大小不得超过20M。\n 2. 新的具体聊天室中发送的文字长度不得超过100个字符。\n 3. 新的具体会员类可以发送图片信息和文本信息。\n 4. 新的具体会员类在发送文本信息时可以在信息后加上时间。\n 修改客户端测试类注意原有系统类代码和客户端代码的修改。);}
}运行效果
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86725.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!