本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Dart 接口 文件分离
和Java一样,dart也有接口,但是和Java还是有区别的
首先,dart的接口没有interface关键字定义接口,而是普通类或抽象类都可以作为接口被实现
同样使用implements关键字进行实现
但是dart的接口有点奇怪,如果实现的类是普通类,会将普通类和抽象中的属性的方法全部需要覆写一遍
而因为抽象类可以定义抽象方法,普通类不可以,所以一般如果要实现像Java接口那样的方式,一般会使用抽象类
建议使用抽象类定义接口
定义一个DB库 支持 mysql mssql mongodb
// mysql mssql mongodb三个类里面都有同样的方法
abstract class Db {
// 当做接口 接口: 就是约定、规范
late String uri; // 数据库连接地址
add(String data);
save();
delete();
}
class MySql implements Db {
@override
late String uri;
MySql(this.uri); // 连接数据库
@override
add(data) {
// TODO: implement add
print('这是MySql的add方法' + data);
}
@override
delete() {
// TODO: implement delete
throw UnimplementedError();
}
@override
save() {
// TODO: implement save
throw UnimplementedError();
}
}
class MsSql implements Db {
@override
late String uri;
@override
add(String data) {
// TODO: implement add
print('这是MsSql的add方法' + data);
}
@override
delete() {
// TODO: implement delete
throw UnimplementedError();
}
@override
save() {
// TODO: implement save
throw UnimplementedError();
}
}
void main() {
MySql mySql = new MySql('xxxxxxx'); // 传入数据库地址
mySql.add('1232243344');
}
文件分离
定义一个DB库 支持 mysql mssql mongodb
mysql mssql mongodb三个类里面都有同样的方法
当前目录新建lib文件夹 文件夹里新建 Db.dart文件 MySql.dart文件 MsSql.dart文件
Db.dart 内容如下:
abstract class Db {
// 当做接口 接口: 就是约定、规范
late String uri; // 数据库连接地址
add(String data);
save();
delete();
}
MySql.dart 内容如下:
import 'Db.dart';
class MySql implements Db {
@override
late String uri;
MySql(this.uri); // 连接数据库
@override
add(data) {
// TODO: implement add
print('这是MySql的add方法' + data);
}
@override
delete() {
// TODO: implement delete
throw UnimplementedError();
}
@override
save() {
// TODO: implement save
throw UnimplementedError();
}
}
MsSql.dart 文件内容如下:
import 'Db.dart';
class MsSql implements Db {
@override
late String uri;
@override
add(String data) {
// TODO: implement add
print('这是MsSql的add方法' + data);
}
@override
delete() {
// TODO: implement delete
throw UnimplementedError();
}
@override
save() {
// TODO: implement save
throw UnimplementedError();
}
}
主文件内容:
import 'lib/MySql.dart';
import 'lib/MsSql.dart';
void main() {
MySql mySql = new MySql('xxxxxxx'); // 传入数据库地址
mySql.add('1232243344'); // 这是MySql的add方法1232243344
MsSql msSql = new MsSql();
msSql.uri='127.0.0.1';
msSql.add('1234321'); // 这是MsSql的add方法1234321
}