XFLegoVIPER icon indicating copy to clipboard operation
XFLegoVIPER copied to clipboard

关于 classPrefix 和 stuffix

Open shanshuiren opened this issue 8 years ago • 1 comments

现在框架在 oc 上面必须有classPrefix 和 stuffix,这种机制下有两种情况下目前不好解决。

  1. 项目内的第三方控件库,第三方控件库都有自己的命名
  2. 公司内部封装的多个项目共用的库

希望后面能够支持不规则的组件名称,比如注册url和组件名的时候以手动指定的方式或者其它方式。 @yizzuide 楼主怎么看?

shanshuiren avatar Aug 08 '17 06:08 shanshuiren

@shanshuiren

框架的过渡性

框架本身没有强制约束开发方式,它是可以承前启后的,意思是你可以用这样的开发方式:

旧项目控制器---跳转到--->URL组件化控制器---跳转到--->旧项目控制器

其中:

  • 旧项目控制器---跳转到--->URL组件化控制器
// 在旧项目控制器里,通过框架提供的获取组件方法
UIViewController *viewController = [XFUIBus openURLForGetUInterface:@"xx://xxx/xxx"];
[self.navigationController pushViewController:viewController animated:YES];
  • URL组件化控制器---跳转到--->旧项目控制器
// 在模块组件的视图层里,通过普通的创建方式
LoginController *loginVC = [[LoginController alloc] init];
[self.navigationController pushViewController:loginVC animated:YES];

如何组件化

如是你还是想把第三方控件库、公司内部封装添加到框架的组件容器,有以下方案:

  • 自己再封装一层规范的控制器名来继承那些
  • 把那些添加到组件化好的控制器视图

关于改进问题

最后说一下框架不能提供不规则的原因:

  1. 无规则不成方圆,会导致很多情况不可控
  2. 你可以没有前辍,但框架是多架构模式容器,各种构架模式都有自己的一些层和后辍名,如: 2.1. MVVM里的ViewModel后辍 2.2. VIPER里的Presenter、Interactor后辍等

yizzuide avatar Aug 08 '17 07:08 yizzuide