# 模板模式-JS
# 手机系统
针对不同的手机系统,做不同的测试。
class Builder {
  // Template method
  build() {
    this.test();
    this.lint();
    this.assemble();
    this.deploy();
  }
}
class AndroidBuilder extends Builder {
  test() {
    console.log('Running android tests');
  }
  lint() {
    console.log('Linting the android code');
  }
  assemble() {
    console.log('Assembling the android build');
  }
  deploy() {
    console.log('Deploying android build to server');
  }
}
class IosBuilder extends Builder {
  test() {
    console.log('Running ios tests');
  }
  lint() {
    console.log('Linting the ios code');
  }
  assemble() {
    console.log('Assembling the ios build');
  }
  deploy() {
    console.log('Deploying ios build to server');
  }
}
const androidBuilder = new AndroidBuilder()
androidBuilder.build()
// Output:
// Running android tests
// Linting the android code
// Assembling the android build
// Deploying android build to server
const iosBuilder = new IosBuilder()
iosBuilder.build()
// Output:
// Running ios tests
// Linting the ios code
// Assembling the ios build
// Deploying ios build to server