美文网首页
dart 语言的工厂模式

dart 语言的工厂模式

作者: 旺仔_100 | 来源:发表于2021-12-03 15:41 被阅读0次

在dart语言中有两种方式可以创建工厂模式:一是直接使用顶层的方法。二是使用工厂模式的构造方法。

使用一个图形工厂创建圆和方举例,基本代码如下:

import 'dart:math';

abstract class Shape {
  num get area;
}

class Circle implements Shape {
  final num radius;
  Circle(this.radius);
  num get area => pi * pow(radius, 2);
}

class Square implements Shape {
  final num side;
  Square(this.side);
  num get area => pow(side, 2);
}

main() {
  final circle = Circle(2);
  final square = Square(2);
  print(circle.area);
  print(square.area);
}

方式一、采用顶层方法

Shape shapeFactory(String type) {
  if (type == 'circle') return Circle(2);
  if (type == 'square') return Square(2);
  throw 'Can\'t create $type.';
}

main() {
final circle = shapeFactory('circle');
  final square = shapeFactory('square');
  print(circle.area);
  print(square.area);
}

方式二、创建一个工厂模式的构造方法

abstract class Shape {
  factory Shape(String type) {
    if (type == 'circle') return Circle(2);
    if (type == 'square') return Square(2);
    throw 'Can\'t create $type.';
  }
  num get area;
}

main() {
  final circle = Shape('circle');
  final square = Shape('square');
  print(circle.area);
  print(square.area);
}

相关文章

网友评论

      本文标题:dart 语言的工厂模式

      本文链接:https://www.haomeiwen.com/subject/surdxrtx.html