我在目标C中创建了一个框架,它具有多个功能,其中需要初始化所有功能,同时安装库实例,我在哪里也提供了灵活性,以提供替代实现任何功能,以实现这一点,我正在使用生成器模式如下,我的问题是,哪种更好的设计模式适合在这里?或者我如何才能提高服务表现/内存使用情况,请建议我一些模式对于这个问题我在目标C中创建一个框架,它需要一个好的构造函数模式
-(instancetype)initWithBuilder:(LibraryBuilder *)builder {
self = [super init];
if (self) {
// allocate feature1 instance
if (builder.feature1)
self.feature1 = builder.feature1;
else
self.feature1 = [[InterfaceA alloc] initWithLib:self];
// allocate feature2 instance
if (builder.feature2)
self.feature2 = builder.feature2;
else
self.feature2 = [[InterfaceB alloc] init];
// allocate App Configuration instance
if (builder.feature3)
self.feature3 = builder.feature3;
else
self.feature3 = [[InterfaceC alloc] init];
// allocate feature4 instance
if (builder.feature4)
self.feature4 = builder.feature4;
else
self.feature4 = [[InterfaceD alloc] init];
// allocate feature5 instance
if (builder.feature5)
self.feature5 = builder.feature5;
else
self.feature5 = [[InterfaceE alloc] init];
// allocate feature6 instance
if (builder.feature6)
self.feature6 = builder.feature6;
else
self.feature6 = [[InterfaceF alloc] init];
// allocate feature7 instance
if (builder.feature7)
self.feature7 = builder.feature7;
else
self.feature7 = [[InterfaceG alloc] init];
// allocate feature8 instance
if (builder.feature8)
self.feature8 = builder.feature8;
else
self.feature8 = [[InterfaceH alloc] init];
return self;
}
也许有些懒惰的var可以在这里使用。 – Larme
如果我正确理解你,你想从建设者那里获得一个功能,如果有的话。否则,你想创建并设置一个“默认”特征实例。我能帮你解决吗? –
@ AminNegm-Awad,谢谢你的回复,是的,你是对的 –