-1

我有两节课:

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 允许吗?

4

2 回答 2

1

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

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

您的设计看起来可以接受,除了车库没有Collection<Car>.

Car这是和之间的一对多关系Garage。这就是通常的做法。

我认为 Smalltalk MVC 的想法有点过时了。以下是我查看 Web 应用程序层的方式:

view-->controller-->service--+-->persistence
                             |
                             +--> model

控制器和视图紧密耦合在一起。

服务是了解 DAO 和模型对象的东西。他们完成用例并拥有自己的工作单元。

于 2013-05-03T12:57:41.843 回答
1

这一切都取决于您的要求。如果每次进入车库时都需要保存汽车,请使用委托来处理数据库插入:

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();
}

并将其保存在其他位置。

于 2013-05-03T13:11:00.427 回答