Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实体类是否可以在OOAD中返回其他实体实例?_Java_Oop_Ooad - Fatal编程技术网

Java 实体类是否可以在OOAD中返回其他实体实例?

Java 实体类是否可以在OOAD中返回其他实体实例?,java,oop,ooad,Java,Oop,Ooad,我有两门课: public class Car { private int id; private String name; private String vendor; /* ... */ } public class Garage { private int id; private String name; private String address; /* get-set and others stuffs */

我有两门课:

public class Car
{
    private int id;
    private String name;
    private String vendor;

    /* ... */
}

public class Garage 
{
    private int id;
    private String name;
    private String address;

    /* get-set and others stuffs */

    public boolean addCar(Car c) {
        /*
            This will insert a car to tblCars
            but belong to this garage
        */
    }

    public List<Car> getListCar {
        /* 
            This will perform a SELECT query on tblCars
            to choose cars belong to this Garage
        */
    }
}

OOAD中允许吗?

允许吗?你认为会发生什么-一个OOAD警察把你拉到一边,给你开罚单

你可以做任何你想做的事。事后你会发现它是否被误导了

你的设计看起来可以接受,只是车库没有收藏

这是汽车和车库之间的一对多关系。通常就是这样做的

我认为Smalltalk MVC的想法有点过时了。以下是我如何看待web应用程序的层:

view-->controller-->service--+-->persistence
                             |
                             +--> model
控制器和视图紧密耦合在一起


服务是了解DAO和模型对象的东西。它们满足用例和自己的工作单元。

这一切都取决于您的需求。如果要求您在每次汽车进入车库时保存汽车,请使用代理处理DB insert:

public boolean addCar(Car c) {
    Delegate.getInstance().addCarToGarage(this, c);
}

public List<Car> getListCar {
    Delegate.getInstance().getAllCars();
}
否则就让它保持原样

public boolean addCar(Car c) {
    myCarList.add(c);
}

public List<Car> getListCar {
    return myCarList();
}

谢谢,我的意思是,例如,在三层设计模式中,表示层不应该直接调用数据访问层,而是通过控制层,所以,这些规则是否禁止一个实体调用/访问/返回其他实体?视图在MVC中不应该引用控制器。箭头应该从控制器指向视图。它用于显示信息流,而不是依赖关系