Interfaces, Class Composition, Diamond Problem

Posted on February 2, 2022
Tags: softdev

1 AbstractClass/Interface vs Composition

2 Interface Composition

type ReadJSON interface {
    ...
}
type ReadXML interface {
    ...
}
type ReadREST interface {
    ReadREST_attr string
    ReadJSON
    ReadXML
}
type ReadRPC interface {
    ...
}
type ReadAll interface{
    ReadAll_attr string
    ReadRPC
    ReadREST
}

3 Class composition

type Wheel struct {
    ...
}
type Engine struct {

}
type Car struct {
    name string
    Engine
    Wheel
}

4 Diamond problem