微信加好友功能的实现:Java示例
引言
在现代社交应用中,添加好友是一个常见的功能。以微信为例,用户可以发送好友请求,接收请求,接受或拒绝这些请求。本文将通过一个简化的Java示例,来展示如何实现微信的加好友功能,并附上序列图和关系图以便于理解。
系统设计
在我们实现这个功能之前,我们需要先设计一下系统。我们将会有以下几个主要实体:
- User - 用户对象,包含基本信息。
- FriendRequest - 好友请求对象,记录请求信息。
- Friendship - 好友关系对象,表示两个用户之间的关系。
关系图
我们用mermaid
语法来表示实体之间的关系:
erDiagram
User {
String id
String name
}
FriendRequest {
String id
String fromUserId
String toUserId
String status
}
Friendship {
String user1Id
String user2Id
}
User ||--o{ FriendRequest : sends
User ||--o{ FriendRequest : receives
User ||--o{ Friendship : has
Friendship ||--o{ User : connects
Java代码示例
下面是一个简单的Java实现,用于模拟微信的加好友功能。
1. User类
public class User {
private String id;
private String name;
public User(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
}
2. FriendRequest类
public class FriendRequest {
private String id;
private String fromUserId;
private String toUserId;
private String status; // "Pending", "Accepted", "Rejected"
public FriendRequest(String id, String fromUserId, String toUserId) {
this.id = id;
this.fromUserId = fromUserId;
this.toUserId = toUserId;
this.status = "Pending";
}
public void accept() {
this.status = "Accepted";
}
public void reject() {
this.status = "Rejected";
}
public String getStatus() {
return status;
}
}
3. Friendship类
import java.util.HashSet;
import java.util.Set;
public class Friendship {
private String user1Id;
private String user2Id;
public Friendship(String user1Id, String user2Id) {
this.user1Id = user1Id;
this.user2Id = user2Id;
}
}
4. 加好友流程
下面是加好友的主要流程,包括发送好友请求、接受请求和建立朋友关系。
import java.util.ArrayList;
import java.util.List;
public class FriendManager {
private List<FriendRequest> friendRequests = new ArrayList<>();
private List<Friendship> friendships = new ArrayList<>();
public void sendFriendRequest(User from, User to) {
FriendRequest request = new FriendRequest(String.valueOf(friendRequests.size() + 1), from.getId(), to.getId());
friendRequests.add(request);
System.out.println(from.getName() + " sent a friend request to " + to.getName());
}
public void respondToFriendRequest(FriendRequest request, boolean accept) {
if (accept) {
request.accept();
friendships.add(new Friendship(request.fromUserId, request.toUserId));
System.out.println("Friend request accepted.");
} else {
request.reject();
System.out.println("Friend request rejected.");
}
}
}
5. 使用示例
最后,我们来看看如何使用这些类来实现加好友功能。
public class Main {
public static void main(String[] args) {
User user1 = new User("1", "Alice");
User user2 = new User("2", "Bob");
FriendManager friendManager = new FriendManager();
friendManager.sendFriendRequest(user1, user2);
// 假设Bob查看并接受好友请求
FriendRequest request = new FriendRequest("1", "1", "2");
friendManager.respondToFriendRequest(request, true);
}
}
序列图
用mermaid
语法表示加好友的序列图如下:
sequenceDiagram
participant Alice as Alice
participant Bob as Bob
participant FM as FriendManager
Alice->>FM: sendFriendRequest(Bob)
FM->>Bob: Notify of request
Bob->>FM: acceptFriendRequest(request)
FM-->>Alice: Notify acceptance
结论
本文简要介绍了如何在Java中实现类似于微信的加好友功能。我们通过简单的类和方法模拟了发送好友请求、响应请求和建立朋友关系的流程。通过序列图和关系图,您可以更清晰地理解各个环节之间的关系。希望这个示例能为您在社交应用的开发过程中提供一些思路和帮助。