Latest 0.0.2
Homepage https://github.com/bobcn/UseCaseSwift
License MIT
Platforms ios 8.0
Authors

使用 Clean 架构开发的软件中的 Use Case 层,承载了主要的业务逻辑。

本类库提供了 Use Case 的基类 UseCase,通过配置文件和 Python 脚本可以生成需要的 Use Case。

并提供了统一的入口 UseCaseHandler 通过 run 方法进行调用,UseCaseHandler 会对 Use Case 进行分发处理。

简介

UseCase

UseCase 子类的配置文件类似:

SaveNotebook;Notebook;
GetPapers;Int NotebookId;[Paper] papers

使用 Python 脚本可直接生成如下的 UseCase 的子类文件:

...

class GetPapersUseCase: UseCase<GetPapers.RequestValues, GetPapers.ResponseValue> {

  override func executeUseCase(requestValues: GetPapers.RequestValues, 
    onCompletion: @escaping (UseCase<GetPapers.RequestValues, GetPapers.ResponseValue>.Result) -> ()) {

  }
}

public class GetPapers: UseCaseWrapper {

...

只需实现 executeUseCase 方法即可。

UseCaseHandler

UseCaseHandler 是 Use Case 层的统一调用接口。

private var handler: UseCaseHandler = UseCaseHandler()

let values = GetPapers.RequestValues(notebookId: 1)

handler.run(useCaseWrapper: GetPapers.self, values: values, 
  onSuccess: { (responseValue: GetPapers.ResponseValue) in

}) { (error: Error) in

}

使用

UseCaseSwift

pod 'UseCaseSwift'

脚本

参考本工程中的 Target:ProduceUseCase,引入并使用脚本和配置文件生成需要的 UseCase 子类。

script_path="./Script"
if [ ! -x "$script_path" ]; then
    git clone [email protected]:bobcn/ProduceUseCase.git Script
fi
cd Script
git pull
python shortcut.py ../Tests/use_case_config

Latest podspec

{
    "name": "UseCaseSwift",
    "version": "0.0.2",
    "summary": "Use Case Core",
    "homepage": "https://github.com/bobcn/UseCaseSwift",
    "license": "MIT",
    "authors": {
        "bobcn": "[email protected]"
    },
    "source": {
        "git": "https://github.com/bobcn/UseCaseSwift.git",
        "tag": "0.0.2"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "Source/*.swift",
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This