类层次结构不适合继承模型

时间:2015-04-24 12:47:14

标签: ios objective-c inheritance

我想创建一个名为“Activity”的类,它将具有ActivityID,ActivityText,Image等属性。现在,用户可以发布有关此活动的注释,也可以LIKE / UNLIKE活动。

ActivityClass -

// Activity.m
 #import "Activity.h"

@implementation Activity


@synthesize id = _id;

- (void)setActivityMessage {
    NSLog(@“New Activity message ");
}
@end

LikeUnlike Class -

// LikeUnlike.m
 #import "LikeUnlike.h"
@implementation LikeUnlike

- (void)likeActivity {
    NSLog(@“ likeActivity
 message ");
}

- (void)unlikeActivity {
    NSLog(@“ unlikeActivity
 message ");
}
@end

评论类 -

// Comments.m
 #import "Comments.h"
@implementation Comments

- (void)addComment {
    NSLog(@“ addComment ");
}
- (void)editComment {
    NSLog(@“ editComment ");
}
- (void)deleteComment {
    NSLog(@“ deleteComment");
}
@end

类的层次结构类似于Activity->喜欢不喜欢&活动 - >评论

我对继承有所了解,但我的情况不适合将ActivityClass子类化为LikeUnlikeClass和CommentsClass。

任何人都可以帮助您使用哪种策略来维护此层次结构..?

1 个答案:

答案 0 :(得分:2)

不需要为您的方案执行任何类的复杂子类化。但是,仅当您希望某些方法只是您的类的一部分而不是将新类创建为子类时,您可以使用CATEGORY来获取您的信息。

在您的情况下,如果您想要将PostComment类分开,请将其设置为Activity类的类别。 有关类别的详细信息,请参阅此处http://rypress.com/tutorials/objective-c/categories,它解释了类别 - 其实现,使用等。