OOP设计继承的建议

Pao*_*olo 1 oop design-patterns

abstract class db{
    // return an handle to db
}

class type extends db{
    // code that uses db
}

abstract class limits extends db{
    // code that DOES NOT use db
}

class otherclass extends limits{
    // code that use db and limits
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,除了限制之外,我需要在所有类中使用db.但限制是使用db的类的父级.我认为这不是正确的设计模式,因为我将db扩展为限制只是为了让孩子们可以使用db.或者是吗?谢谢.

md4*_*md4 5

根据未说明的要求,在这种情况下,最好使用合成而不是继承.

class db {
    // returns db handle
}

class type {
    private db; // type can now use db
}

class limits {
    // does something
}

class otherclass {
     private limits;
     private db;      // can use limits and db
}
Run Code Online (Sandbox Code Playgroud)

  • +1.主要是因为它们之间没有任何继承性的四个类只是美观:-)子类是OOP中过度评价/过度使用的方面. (2认同)