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
Class 我如何让用户只借阅书籍的副本而不进行审阅?_Class_Oop_Object_Inheritance_Uml - Fatal编程技术网

Class 我如何让用户只借阅书籍的副本而不进行审阅?

Class 我如何让用户只借阅书籍的副本而不进行审阅?,class,oop,object,inheritance,uml,Class,Oop,Object,Inheritance,Uml,因此,我在一个图书馆管理系统上工作,我有一个文档类,可以是book(livre)类型或revue(revue),每个文档只有很少的副本,用户只允许借阅书籍副本,而不允许借阅评论副本,我找不到任何其他方法,只能制作两个副本(Examplaile)类,一个用于书籍,另一个用于审查。 提前谢谢 我会做如下事情: public class Document { //document properties } public interface IBorrowable { Document

因此,我在一个图书馆管理系统上工作,我有一个文档类,可以是book(livre)类型或revue(revue),每个文档只有很少的副本,用户只允许借阅书籍副本,而不允许借阅评论副本,我找不到任何其他方法,只能制作两个副本(Examplaile)类,一个用于书籍,另一个用于审查。 提前谢谢


我会做如下事情:

public class Document
{
    //document properties
}
public interface IBorrowable
{
    Document Lend();
}

public class Book : Document, IBorrowable
{
    public Document Lend()
    {
        throw new NotImplementedException();
    }
}
public class Review:Document
{

}
我认为这种方式很有意义,因为能够被借用是一种能力,特定类型的文档可以拥有

另一个原因是,这种方式具有足够的动态性,可以涵盖您可能需要的其他未来类型的文档


我会做如下事情:

public class Document
{
    //document properties
}
public interface IBorrowable
{
    Document Lend();
}

public class Book : Document, IBorrowable
{
    public Document Lend()
    {
        throw new NotImplementedException();
    }
}
public class Review:Document
{

}
我认为这种方式很有意义,因为能够被借用是一种能力,特定类型的文档可以拥有

另一个原因是,这种方式具有足够的动态性,可以涵盖您可能需要的其他未来类型的文档


为什么不上两门课:读书和复习。(请告诉您的老师,最好使用英语作为类名,并避免使用重音:我从未在代码中看到带有重音的类名)

我会在副本和文档之间更改关联的方向。据我所知,该文件是一份文件的官方参考文件。它可以是标准化的,在世界上所有的图书馆都可以是一样的:它的作用不是管理拷贝

你可以得到很多既没有属性也没有方法的类:它们可以被一个简单的枚举所代替

然后,下面的模型显示用户只能借书。此解决方案避免了OCL的使用。即使OCL是一个好主意:它简化了模型,但增加了OCL规则的复杂性


为什么不上两门课:读书和复习。(请告诉您的老师,最好使用英语作为类名,并避免使用重音:我从未在代码中看到带有重音的类名)

我会在副本和文档之间更改关联的方向。据我所知,该文件是一份文件的官方参考文件。它可以是标准化的,在世界上所有的图书馆都可以是一样的:它的作用不是管理拷贝

你可以得到很多既没有属性也没有方法的类:它们可以被一个简单的枚举所代替

然后,下面的模型显示用户只能借书。此解决方案避免了OCL的使用。即使OCL是一个好主意:它简化了模型,但增加了OCL规则的复杂性


为什么不添加布尔属性(CanBeFrood)?谢谢yahya,我有这个想法,但这不会破坏成员(adhérent)和副本(Examplaile)之间的关联(Frood)的意义吗?如果一个成员借用了一个副本,那么我们应该测试它是否正常,有没有其他方法将可借用文档与其他文档分开?为什么不添加一个布尔属性(CanBeFrood)?谢谢yahya,我有这个想法,但这不会破坏成员(adhérent)和副本(Examplaile)之间的关联(借用)的意义吗?如果成员借用了副本,那么我们应该测试它是否正确,有没有其他方法将可借用文档与其他文档分开?解决方案没有错,但不是UML。您需要使用链接到关联的约束来显示。是的,正如您可能已经注意到的,我的类图中已经有一个可借用的接口(empruntable),我让book实现了我的接口,但是关联借用是在copy和member之间,所以成员可以调用方法来借用任何文档的副本。@ThomasKilian您是指OCL吗?这会出现在我的类图中吗?对不起,我不懂法语,所以这个图对我来说不是很清楚,问题是如果一种类型的文档不能被借用,那么它就不应该实现IBorrowable@YahyaHussein这里的问题是,,应该借阅的不是书,而是它的副本,因为一本书有多个副本可用,而且该副本类是review和book之间的共同点:/解决方案没有错,但它不是UML。您需要使用链接到关联的约束来显示。是的,正如您可能已经注意到的,我的类图中已经有一个可借用的接口(empruntable),我让book实现了我的接口,但是关联借用是在copy和member之间,所以成员可以调用方法来借用任何文档的副本。@ThomasKilian您是指OCL吗?这会出现在我的类图中吗?对不起,我不懂法语,所以这个图对我来说不是很清楚,问题是如果一种类型的文档不能被借用,那么它就不应该实现IBorrowable@YahyaHussein这里的问题是,,应该借阅的不是书,而是它的副本,因为一本书有多个副本可用,而且副本类是review和book之间的一个共同点:/hey@granier对于没有属性和方法的类,只是我在文档/副本问题上卡住了,就停止了开发我的图表类,我真的很想避免创建borrowableCopy和UnbrowableCopy类,但我想没有其他办法了,非常感谢。hey@granier对于没有属性和方法的类,只是我在文档/副本问题上陷入困境后停止了开发我的图表类,我真的很想避免使用borrowableCopy和UnbrowableCopy类,但我想没有别的办法了,非常感谢。