Model
- Entity (具体的业务实体,如 User,Friend,Book)
- MemoryCache (单例类,存储所有的内存数据,但不做任何数据相关操作)
@property (nonatomic, strong) User *accountUser,
@property (nonatomic, strong) NSMutableArray<Friend *> *friendList;
@property (nonatomic, strong) NSMutableArray<Book *> *bookList;
- Service (具体的业务类,全部为静态方法)
UserService (+ userId, + userName, + userCoin, + requestModifyName)
FriendService(+ addFriend, + deleteFriend, + requestFriendList)
BookService(+ buyBook, + deleteBook)
我将数据全部存储在 MemoryCache 中,这样就可以做到应用中仅有一个单例存储内存数据,Service 中全是静态方法,VC 调用 Service 层。当账户切换时,可以将全部数据直接清空。
如果每个 service 写成一个单例,那么比如 buyBook 之后 扣除 accountUser 中的金币,就会涉及单例调用另一个单例的情况。我认为这种调用多了之后比较混乱。如果是我这种做法,就可以直接在 BookService 中操作 accountUser 数据。
求问这种写法有什么问题?
1
loveuqian 2017-07-15 14:56:32 +08:00
这个 app 没有后台的吗?
|
2
queuey 2017-07-15 15:11:17 +08:00
1.看你这需求 Service 并没有写成单例的必要
2.既然 service 全部为类方法,为何不考虑给每个业务实体增加一个 category,专门用来提供可视数据。 3.如果你的数据全部通过 service 来调用,为何 bookList 设置成 Mutable,而不是 NSArray,属性为 readonly。 |