小编Ano*_*ous的帖子

德米特定律是什么?

让我们从维基百科开始:

更正式地说,函数的Demeter法则要求对象O的方法m只能调用以下类型对象的方法:

  1. O本身
  2. m的参数
  3. 在m中创建/实例化的任何对象
  4. O的直接组件对象
  5. 一个全局变量,可由O访问,范围为m

规则1:

public class ClassOne {

    public void method1() {
        method2();
    }

    public void method2() {

    }
}
Run Code Online (Sandbox Code Playgroud)

规则2:

public class ClassOne {

    public void method1(ClassTwo classTwo) {
        classTwo.method2();
    }
}

class ClassTwo {

    public void method2() {

    }
}
Run Code Online (Sandbox Code Playgroud)

规则3:

public class ClassOne {

    public void method1() {
        ClassTwo classTwo = new ClassTwo();
        classTwo.method2();
    }
}

class ClassTwo {

    public void method2() {

    }
}
Run Code Online (Sandbox Code Playgroud)

规则4(感谢@juharr):

public class ClassOne …
Run Code Online (Sandbox Code Playgroud)

c# java oop law-of-demeter

10
推荐指数
1
解决办法
2672
查看次数

如何为 GridFS 集合创建猫鼬模型?

所以我试图为 GridFS 集合创建一个猫鼬模型,但没有成功。

let bucket;
(async () => {
    try {
        await mongoose.connect(process.env.MONGODB_URI, { useNewUrlParser: true });
        const { db } = mongoose.connection;
        bucket = new mongoose.mongo.GridFSBucket(db, { bucketName: 'tracks' });
    }
    catch(err) {
        console.log(err);
    }
})();
Run Code Online (Sandbox Code Playgroud)

这是我的课程架构和模型:

const courseSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true,
    },
    tracks: [{
        type: mongoose.Types.ObjectId,
        ref: 'tracks.files'
    }],
});

const Course = mongoose.model('Course', courseSchema);
Run Code Online (Sandbox Code Playgroud)

这是我的曲目模式和模型:

const trackSchema = new mongoose.Schema({
    length: { type: Number },
    chunkSize: { type: Number },
    uploadDate: …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js gridfs

4
推荐指数
1
解决办法
1897
查看次数

标签 统计

c# ×1

gridfs ×1

java ×1

law-of-demeter ×1

mongodb ×1

mongoose ×1

node.js ×1

oop ×1