问题标签 [multiple-inheritance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何在 Zend Acl 中实现资源之间的多重继承?
长话短说:为什么 Zend ACL 支持角色之间而不是资源之间的多重继承?
我有一个大的资源树,我希望能够授予权限。过去,我所做的就是创建两棵不同的树。第一个具有树中每种类型的通用资源。第二个具有这些类型的所有实例,以相同的方式排列。这意味着如果您要对树进行超级强加,您会在同一级别上找到相同类型的对象。然后,将每个对象实例设置为将其来自第一棵树的通用对象作为附加父对象。这允许我为每种类型的对象设置默认权限,因此每个实例都将继承它们,而不是我必须定义它们,但仍然为我提供了对每个实例的精细、特定的访问权限。
一个例子:
一个站点有 3 个模块:用户,其中存储用户配置文件和诸如此类的东西。论坛,对当前问题进行热烈讨论 画廊,用户可以上传他们的宠物照片
所以,上面提到的泛型树看起来像这样:
实例树看起来像这样:
并且在 ACL 中,每个用户对象实例都将从第一棵树中的用户继承。所以默认情况下,我想让所有内容都可读,所以我允许在模块上读取。一切都继承自模块,所以一切都很好。我还希望用户能够编辑他们的个人资料,所以我授予每个用户在他们各自的个人资料上的编辑权限,泛型树在这里没有帮助。假设我的照片画廊是 NSFW,所以我想拒绝阅读它们。通过多重继承,我可以拒绝任何未注册用户的照片读取,这只是一个操作。如果没有多重继承,我必须检查每张照片并拒绝未注册用户的读取权限。如果我有很多照片,这是个坏消息。
有谁知道这样做的方法?它提供了我能想到的最灵活的解决方案。如果您能想到可以使用 Zend_Acl 实现的更好的东西,也请回复!
非常感谢。
multiple-inheritance - Mixins 与 Traits
Mixins 和 Traits 有什么区别?
根据 Wikipedia,Ruby 模块有点像特征。怎么会这样?
c#-3.0 - 在 C# 中的接口上具有扩展方法的伪多重继承?
我在想,使用与接口相同命名空间中的扩展方法,您可以获得与多重继承类似的效果,因为您不需要在 10 个不同的类中以相同的方式实现相同接口的重复代码。
这样做有什么缺点?我认为优点很明显,缺点通常会在以后回来咬你。
我看到的一个缺点是扩展方法不能是虚拟的,因此您需要确保您确实希望它们对每个实例都以相同的方式实现。
c++ - 这是有效的 C++ 代码吗?
我只是想知道以下代码块在 C++ 中是否完全有效:
使用 VS2008 它编译没有任何错误,但是,在 GCC (MinGW) 3.4.5 上它给了我这样的错误:
在实现虚拟方法的行上。我很好奇这是否通常被认为是无效的并且被 C++ 标准禁止的代码(并且在 VS 中它因此可以工作,这要归功于一些 MS 非标准化的魔法),或者只是 GCC 中的错误或不支持的语言功能。
asp.net-mvc - ASP.NET MVC - 是否可以在 FORMS 根项目中有 MVC 子项目?
我试图找出其他人是否能够做到这一点。我找到了以下问题和答案(参考 Scott Hanselmans 关于混合表单和 MVC 的帖子)(我可以将 ASP.NET MVC 与常规 ASP.NET Web 表单一起使用)。然而,这并不完全相同。
您是否能够在服务器上运行 .NET FORMS 项目(作为 rootproject),同时在同一台服务器上运行 MVC(作为子项目)?只是尝试空的默认项目,它不会工作:)
http://server (或http://www.server.com ) --- 表单项目
http://server/mvc (或http://www.server.com/mvc ) --- MVC 项目
c# - 为什么 Java 或 C# 中不允许多重继承?
我知道在 Java 和 C# 中不允许多重继承。很多书只是说,不允许多重继承。但它可以通过使用接口来实现。没有讨论为什么不允许这样做。谁能准确地告诉我为什么不允许这样做?
c++ - C++的多重继承是如何实现的?
单继承很容易实现。例如,在 C 中,继承可以模拟为:
但是对于多重继承,编译器必须在新构造的类中安排多个父级。它是如何完成的?
我看到的问题是:父母应该安排在AB还是BA,或者甚至其他方式?然后,如果我进行演员表:
编译器必须考虑是否改变原始指针。虚拟机也需要类似的棘手事情。
python - 提取页面元数据会很好地利用多重继承吗?
我想知道我是否有几个模型都包含“meta_keywords”或“slug”之类的字段,这些字段与将显示模型实例的网页有关,是否建议将这些页面元数据元素分开进入他们自己的类,比如PageMeta,并让我的其他模型通过多重继承继承这些模型?
c++ - 多重继承层次结构
很长一段时间以来,我一直在寻找一种干净的方式来做到这一点。在我的问题中,存在 3 个类不共享任何父类,但每个类都有一些同名的方法(A.doSomething、B.doSomething、C.doSomething)。因此,具有相同的函数签名,类 D 从 A 继承并使用方法 doSomething() 将“看起来相同”,以 E 从 B 或 C 继承。
这是我想做的事情的草图:
在这个问题中,“独立”类型的对象由我无法更改的库提供。我想定义一个使用稍后将被继承的方法的基类。我找不到使用虚拟继承来执行此操作而不会导致编译不明确的正确方法。
database-design - 如何用 RDBMS 建模这种多重继承关系?
我正在查看我提出的这个数据模型并且感觉不舒服。我已经更改了实体名称,所以它(希望)更有意义。无论如何,您将如何建模以下内容?
我有 3 个实体。政府客户、私人客户、公共客户。私人客户和公共客户都是公司客户。企业和政府客户是账户。所有帐户共享相同的密钥空间(因此,如果 PrivateCustomer 的 PK 为 1,那么 Public 或 GovernmentCustomer 的 PK 不应该为 1)。CorporateCustomer 有一些GovernmentCustomer 没有的1:M 关系。PublicCustomers 有一些 PrivateCustomers 没有的 1:M 关系。
传承:
现在我的模型有 5 张桌子。“Account”表是这个层次结构的根,每个子表的 PK 是其父 PK 的 FK。所以所有的表都有相同的PK。
所以,是的,你将如何建模?我希望这里没有出现严重错误:)。
编辑:
另外: - 我希望数据库负责参考完整性而不是应用程序。- 如果没有私人或公共客户,CorporateCustomer 就不可能存在。它的抽象。