不同的汉堡有不同的配料,例如奶酪,洋葱,牛肉,沙拉。让我们考虑将汉堡包和芝士汉堡作为可能的汉堡实例,并使用对象属性“ has_Topping”来定义其属性。
首先,我们要对一个汉堡工厂进行建模,其中每个生产的汉堡都是一个实例。因此,我们有cheeseburger_1,hamburger_1,cheeseburger_2,hamburger_1。每个汉堡都有自己的浇头实例,例如
<cheeseburger_1> <has_Topping> <cheese_1> ;
<has_Topping> <beef_1>.
<cheeseburger_2> <has_Topping> <cheese_2> ;
<has_Topping> <beef_2>.
与此相关的是,has_Topping不起作用,而是相反的功能(因为topping决定它是构成哪个汉堡)。而且,has_topping是不完整且不自反的。对吧?
第二,我们要为汉堡食谱数据库建模。因此,我们只有一个配方来制作原始的芝士汉堡和汉堡。我们的浇头仅存在一次。
<hamburger> <has_Topping> <beef>;
<has_Topping> <salad>.
<cheeseburger> <has_Topping> <beef>;
<has_Topping> <cheese>.
据此,has_Topping不起作用,也不是逆函数(因为topping不能确定它是构成哪个汉堡)。而且,has_topping是不完整且不自反的。对吧?
所选特征是否根据特定用例正确或存在思维错误?