Last active
September 20, 2019 09:29
-
-
Save drypot/14ced2aa65d4668b4fe7dd1889e2b04d to your computer and use it in GitHub Desktop.
User, Room Sketch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// User | |
class User { | |
userId; | |
} | |
class UserManager { | |
IRepository repo; | |
List<User> users = new List<User>(); | |
User GetUser(int userId); | |
void UpdateUser(int userId, int p1, int p2, int p3, int p4, int p5, int p6) | |
{ | |
var user = users.Find(userId); | |
user.Update(p1, p2, p3, p4, p5, p6); | |
repo.UpdateUser(userId, p1, p2 p3, p4, p5, p6); | |
} | |
} | |
class MySQLRepo : IRepository { | |
void UpdateUser(int userId, int p1, int p2, int p3, int p4, int p5, int p6) | |
{ | |
// EF 코드 | |
} | |
} | |
void CalcComplexDataAndUpdate(int userId) | |
{ | |
// Calculation.... | |
int p1 = ... | |
int p2 = ... | |
int p3 = ... | |
... | |
userManager.UpdateUser(userId, p1, p2, p3, p4, p5, p6); | |
} | |
// Room | |
class Room { | |
roomId; | |
users; | |
} | |
class RoomManager { | |
IRoomRepository repo; | |
void RoomNotify(int roomId, string msg) | |
{ | |
var room = repo.GetRoom(roomId); | |
foreach(var user in room.Users) | |
userSessionManager.SendMessage(user.Id, msg); | |
} | |
} | |
class RedisRoomRepository : IRoomRepository { | |
Room GetRoom(int roomId); | |
} | |
class MemoryRoomRespository : IRoomRepository { | |
List<Room> rooms = new List<Room>(); | |
Room GetRoom(int roomId); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment