Refactor code structure for improved readability and maintainability

This commit is contained in:
catlog22
2025-12-12 11:19:58 +08:00
parent 77de8d857b
commit b74a90b416
169 changed files with 29206 additions and 369 deletions

View File

@@ -0,0 +1,14 @@
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger age;
@property (nonatomic, strong) NSString *email;
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age;
- (void)sayHello;
- (void)updateEmail:(NSString *)email;
+ (Person *)createDefaultPerson;
@end

View File

@@ -0,0 +1,27 @@
#import "Person.h"
@implementation Person
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age {
self = [super init];
if (self) {
_name = name;
_age = age;
}
return self;
}
- (void)sayHello {
NSLog(@"Hello, my name is %@", self.name);
}
- (void)updateEmail:(NSString *)email {
self.email = email;
NSLog(@"Email updated to: %@", email);
}
+ (Person *)createDefaultPerson {
return [[Person alloc] initWithName:@"John Doe" age:30];
}
@end

View File

@@ -0,0 +1,14 @@
#import <Foundation/Foundation.h>
#import "Person.h"
@interface UserManager : NSObject
@property (nonatomic, strong) NSMutableArray<Person *> *users;
+ (UserManager *)sharedManager;
- (void)addUser:(Person *)user;
- (Person *)findUserByName:(NSString *)name;
- (void)removeUser:(Person *)user;
- (NSInteger)userCount;
@end

View File

@@ -0,0 +1,42 @@
#import "UserManager.h"
@implementation UserManager
+ (UserManager *)sharedManager {
static UserManager *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[UserManager alloc] init];
sharedInstance.users = [[NSMutableArray alloc] init];
});
return sharedInstance;
}
- (void)addUser:(Person *)user {
if (user) {
[self.users addObject:user];
NSLog(@"Added user: %@", user.name);
}
}
- (Person *)findUserByName:(NSString *)name {
for (Person *user in self.users) {
if ([user.name isEqualToString:name]) {
return user;
}
}
return nil;
}
- (void)removeUser:(Person *)user {
if (user) {
[self.users removeObject:user];
NSLog(@"Removed user: %@", user.name);
}
}
- (NSInteger)userCount {
return self.users.count;
}
@end

View File

@@ -0,0 +1,30 @@
#import <Foundation/Foundation.h>
#import "Person.h"
#import "UserManager.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// Create some users
Person *alice = [[Person alloc] initWithName:@"Alice" age:25];
Person *bob = [[Person alloc] initWithName:@"Bob" age:30];
Person *charlie = [Person createDefaultPerson];
// Get shared manager
UserManager *manager = [UserManager sharedManager];
// Add users
[manager addUser:alice];
[manager addUser:bob];
[manager addUser:charlie];
// Find user
Person *found = [manager findUserByName:@"Alice"];
if (found) {
[found sayHello];
[found updateEmail:@"alice@example.com"];
}
NSLog(@"Total users: %ld", (long)[manager userCount]);
}
return 0;
}