你对这个设计决定有什么看法?它有什么优点和缺点
链接:
该公司的关键原则是“宁可合成也不要继承”;去吧,让你跟着它;-) 继承的唯一真正用途是:
多态性
Go的界面“静态鸭子类型”系统解决了这个问题
从另一个类借用实现
这就是嵌入的目的
GO方法不精确映射1-to-1,考虑java中继承和多态的经典例子:
在这里,继承和多态性是结合在一起的,如果不改变底层结构,就无法将其转换为其他形式
我还没有深入研究围棋,但我想它看起来是这样的:
//roughly Go? .... no?
我试图在Prolog中定义继承检查谓词是a/2,但到目前为止,我的所有尝试都失败了
是a(X,Y)谓词应该在Y是X的超类时返回true。例如:
object(bare).
object(mammal).
object(animal).
object(bird).
is_a(bare, mammal).
is_a(mammal, animal).
is_a(bird, animal).
is_a(X, Y):- <definition goes here>.
我试图用显而易见的方式定
我正在做一个国际象棋游戏,我有一个基本的“棋子”界面,我希望所有棋子都能实现。我有一些每个类都需要的通用变量,但我不想在每个类中都使用getter和setter(似乎它与DRY相反)
我所做的是将我的接口称为PieceBase,有一个具体的类称为Piece,我将我的实际片段从Piece扩展到实现PieceBase。但我不希望这个片段被实例化,因为它本身没有意义,而且这个方法的某些方面让我感到不安
这通常是如何做到的
具体来说,这是在Java中实现的,但我不知道它在任何其他OO语言中是否有所不同。
我仍然对咖啡脚本和javascript继承中“this”的范围和上下文感到困惑。为什么这个(@)用于创建静态方法以及引用实例方法,比如@myStaticMethod和@move之间的区别,“这个”在这两种情况下代表什么
e、 g
您必须调用@run(),因为run()是本地函数调用
class Dog extends Animal
sprint: () ->
run = (x) ->
alert x
run(4)
另一方面,@run()是一个th
我已经将Joomla 1.5网站迁移到Joomla 2.5
Joomla 1.5网站使用Mootools 1.11。
Joomla 2.5网站使用Mootools 1.4.5。
该网站包含一个名为annuary的特定功能
年鉴需要一些基于Mootools 1.11的JavaScript文件。
我需要将这些文件中的一些说明改编为Mootools 1.4.5。
其中一个JavaScript文件是Autocompleter.js。
以下是Autocompleter.js的摘录:
var Autocom
我对我的JPA项目有点意见。我有两个班,员工班和会员班。这对JPA来说很好,但当我试图使用现有的Person对象(实际上是一个成员)合并一名员工以创建一名员工时,我遇到了重复条目异常。我如何处理这个问题?我不知道
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Person implements Serializable{
@Id
@GeneratedValue(strategy =
我在项目中遇到了一个问题,它与JS的原型继承有关。并将主要问题概括如下:
var parentObj = {
value:"parent value",
obj: {
obj: "parent obj value"
}
}
var childObj = Object.create(parentObj)
childObj.value ="child value"
childObj.obj.obj = "child obj value";
console.
我的代码中有以下代码模式
class A {
String x
String y
String z
A() { }
A(String a) { }
}
@groovy.transform.InheritConstructors
class B extends A {
B(String x, String y) {
this.x = x
this.y = y
this.z = ""
}
}
@groovy
我有几对结构,其中一个的字段是另一个的完美超集。我想模拟某种类型的继承,这样我就不必为每个结构都有单独的案例,因为这几乎会使我的代码翻倍
在像C这样的语言中,我可以用如下方式模拟字段的继承:
结构A
{
INTA;
};
结构B
{
构造父对象;
int b;
};
main()
{
结构B测试1;
结构A*test2=&test1;
test2->a=7;
}
我想在Rust做类似的事情。我读过类似的东西,但当我尝试它时,它似乎还没有实现。有没有办法在没有单独的案例处理的情况下在另一个结构中
我希望能够在Vue组件的模板中定义块,如下所示:
{# templates/blog/layout.html.twig #}
{% extends 'base.html.twig' %}
{% block body %}
<h1>Blog Application</h1>
{% block content %}{% endblock %}
{% endblock %}
{#templates/blog/layout.html.twig}
{%exten
我正在尝试实现一个媒体库系统,我从POCO开始设计。我计划将实际的数据访问与对象分离,以便将同一对象持久化为XML或SQL
我的设计是:
public abstract class MediaBase {}
public class Image : MediaBase {}
public class Movie : MediaBase {}
public class Document: MediaBase{}
... // more classes inherits from base
如您所
假设我有:
class A(val foo: String)
class B(foo: String) extends A(foo)
class C(val foo: String) extends A(foo)
class D(override val foo: String) extends A(foo)
class E(bar: String) extends A(bar)
我感兴趣的是每个类的实例占用多少内存。类的实例将有一个成员变量:foo
B、C、D和E班怎么样?它们每个都有多少
类是否可以从实体框架类继承,并且仍然可以使用继承的类映射持久化回DB?当我尝试保存声明类型没有任何映射的更改时,我在尝试从“自跟踪实体”类派生时收到错误。我本来希望,由于该类型是从实体类继承的,因此它也可以以某种方式继承实体映射,从而使其正常工作。有人能让这个工作吗
我尝试支持的场景是在另一个程序集中扩展实体对象,该程序集中引用了包含实体和映射的程序集。分部类和映射被编译到包含实体对象的程序集中。因此,我无法通过使用分部类来实现这一点。除非您真的需要覆盖某些数据或默认功能,否则最好的办法就是扩展
假设我们有书
class Book {
String title
String type="Book"
String author
Book parentBook // <----<<<
//...
}
当我这样做时,当我试图为ReferenceBook设置parentBook时,会得到一个java.lang.reflect.InvocationTargetException
我知道我在这里遗漏了什么…使用鉴别器功能:
class B
我正在尝试在CoffeeScript中进行一些简单的子类化
class List
items: []
add: (n) ->
@items.push(n)
console.log "list now has: #{@}"
toString: ->
@items.join(', ')
class Foo extends List
constructor: ->
console.log "new list created"
我有两门课:
@Entity
@Table(name="a_table")
@Inheritance(strategy= InheritanceType.JOINED)
@DiscriminatorColumn(name="jdoclass", length=255)
public abstract class A {
@Id
@Column(name="id")
private int id;
@Column(name="other_id")
private int ot
我有一个叫做Polygon的类,还有一个叫做Triangle的子类(如果是正确的术语)。三角形有一个名为外切中心()的函数。多边形没有这样的功能
我有一个多边形向量。我想调用其中一个多边形,我知道它是三角形,外心函数。调用Polygons[0].exprichcenter()时,我出现了错误“类Polygon没有名为“exprichcenter”的成员”,我假设是因为程序不知道该多边形是三角形
有解决方法吗?大多数语言都允许您转换为正确的类型。
e、 g.爪哇
if (polygons[0] i
我使用的是Liferay 6.1,我有一个名为MySite Approvers的用户组,并为其分配了站点角色site Approver,用于站点MySite
我希望属于此用户组的用户也将继承MySite的站点审批者角色,即继承此站点角色的权限
但用户不继承站点角色权限,在“控制面板”中MySite的站点成员身份中,用户的站点角色为空
我怎样才能修好它?我是否应该编写一个钩子,定期向具有站点角色的用户组成员添加站点角色?Liferay不会在员工角色配置文件中显示您的站点角色站点审批人,因为该角色不
我有一个块,我希望我的块继承的嵌套元素被扩展
.block
margin 40px 0
text-align center
&__support
border 1px solid #ccc
background white
max-width 178px
height 178px
border-radius 100%
margin-right 70px
&a
我希望通过编程从JSON文件生成由多个不同组件组成的报告,如:
{
components: [UserStatsComponent, ActivityChartComponent, NetworkGraphComponent]
}
我发现:
但是我的用例不同,我需要表示不同类型的组件,所以我不能在模板中使用ngFor,因为不是每个组件都有相同的指令
我不熟悉Angular2,所以我真的不知道如何处理这个问题:首先,我考虑了组件继承,但在扩展组件类时,Angular2注释似乎没有被继承。
我在一个组中有一系列组件,其中一些组件被编写为通用的,而不是特定于我的应用程序。我希望这些通用组件的输入和输出继承它们在父组中连接到的参数的单位。这可能吗?我不确定这是否真的有必要,而且一切似乎都很顺利,但我一直收到以下警告:
Unit Conversions
GeneralComp.Output -> SpecificComp.Input : None -> kW
我可以预见这样一个问题:传入GeneralComp的单元应该在某个时刻转换,但由于单元丢失,因此不会转换。我们无法从
我目前正在使用Typescript进行Angular 2项目
我有几个组件具有相同的行为:它们都能够显示加载程序(取决于它们是否正在获取某些数据)、错误屏幕(如果获取失败),并且它们都订阅相同的服务(获取数据的服务)。此服务每30秒刷新一次数据,组件订阅者对新数据的处理方式几乎与此相同
我找不到一个好方法来分享这种行为
我尝试使用typescript中的mixin,但首先,我不能在我的组件中重写我在mixin中声明的方法,其次,我仍然必须在组件中声明内部没有任何内容的方法,所以我的编译器不会抱怨
标签: Inheritance
ember-dataassociationsrails-postgresqlrails-api
我正在努力弄清楚如何设计我的PostgreSQL数据库表和Rails API模型,以便它们的关联可以在我的Ember前端1:1实现,从而Ember和Rails可以通过通常理解的JSON流畅地通信。(我在Rails端使用ActiveModelSerializer,在Ember端使用ActiveModelAdapter。)
在我开始编写任何代码之前,我的基本想法是:
Product可以是Type1、Type2等,也就是说,子类型继承Product(我认为它是一个抽象类——没有什么东西应该只是Pro
在VS2015中使用TypeScript 2.2时,我有一个基类和一个派生类,而派生类又有一个派生类
编译时,我收到一个错误,即类必须在其基类之后声明。每个类都在它们自己的文件中,所以看起来它们是按字母顺序编译的,因为如果我用aa重命名基类,那么它首先按字母顺序出现,然后解决方案编译
我本来可以把所有的类放在一个文件中,在这种情况下,我可以控制顺序,但我不想把所有派生类放在同一个文件中
我在这里做错了什么,它不应该先编译最低的依赖项吗?编译器不会对发出的代码重新排序。这些文件是按照命令行上提供的
我一直在努力保持go模块整齐地分开,避免循环依赖
现在我有这样的代码:
package chain
type Block struct{
Content []byte
Number int
}
var Chain []Block = make([]Block, 10)
func AddBlockToChain(block Block){
// do some checks
//...
// add to chain
Chain[bl
我正在Vue.js 2中构建一个数据密集型应用程序
我想为我的数据使用模型(/classes),因为它包含在定义非常好的对象中,并为此找到了一些很好的框架
我的问题是有很多类型的模型,它们通过使用和继承在内部相互依赖。
我想尽量减少每个模型的导入位置数量,但全球包含似乎不可能或不可行
我已经尽可能地做了一个总结——以下是要点:
index.html(仅限相关部分,请参阅演示以了解上下文)
基本模型.js
base data.js
当包含base data.js时失败,因为它的作用域中没有B
我正在尝试将一个过滤器从选股(就绪,完成…)添加到联系人过滤器中
具体来说,尝试从stock.picking继承我需要的过滤器,将其添加到res.partner(搜索查看联系人)
像这样。。(.py):
视图(.xml)
res.partner.filter.inherit
合伙人
图片:
但是,选择筛选器时出错
Erreur:
Odoo Server Error
Traceback (most recent call last):
File "C:\Program Fil
不要与UML中对应于虚线和空心三角形表示的接口实现关系的接口继承子类型混淆,也不要与UML中对应于实线和空心三角形表示的泛化关系的实现和接口继承子类型混淆
注-Erich Gamma等人于1994年在UML之前出版的《设计模式》一书,其类图基于OMT,OMT是UML的祖先,非正式地使用实线和空心三角形,带有“实现”修饰符,用于表示实现继承:
图.-类适配器设计模式的OMT类图。GoF术语
GoF提出了一些术语p。13-15你似乎已经采纳了:
对象将数据打包为其状态,并对其方法进行处理,这是访问数
我对UML中的“原型”和“超类”之间的区别感到困惑
假设我想创建一个涉及“WidgetMaker”的图表,WidgetMaker显然是一个Actor,因此UML标准是对它进行原型化:
<<Actor>> WidgetMaker
所以我的问题是:当您可以使用类继承(它也有类继承)同样轻松地建模这些概念时,为什么UML有原型呢
一旦我们有了更多“种类”的演员,问题就变得更加模糊了:
Actor
^
我有以下想法:
@Named
public class SpecificAction extends BasicAction {
public void calulateSomething(ValueChangeEvent event) {...}
}
}
@Named
public abstract class BasicAction {
public void calculateSomething(ValueChangeEvent event) {...}
}
我有两个班,A班和B班。两者都有属性,ClassB继承自ClassA。当我尝试将ClassB序列化为xml时,我希望它被序列化,就像ClassA被序列化一样。这意味着ClassB专有的所有属性都将丢失,只有从ClassA继承的属性才会被序列化。除了用[XmlIgnoreAttribute]标记ClassB中的每个属性外,还有其他方法可以做到这一点吗
编辑:ClassA有[Serializable]标记ClassB没有。假设您使用的是XmlSerializer,那么只需将typeof(ClassA
我正试图弄清楚如何在Symfony中实现两个bundle之间的正确分离,我遇到了一个条令问题
我有两个bundle,一个更通用的bundle(充满抽象类)称为“BaseProduct”,然后是该bundle的一个实现(它提供了专门化该bundle功能的机会)称为“ClientProduct”
我在“产品”捆绑包中有两个关联的实体
abstract class Product
{
// One product has many attributes
private $attrib
我有两张桌子。员工和用户
员工使用InheritanceSenategy=InheritanceType.JOINED进行注释
用户使用@PrimaryKeyJoinColumnname=super\u id进行注释
如果我使用用户实体,一切都很好
当我要加载员工实例时,hibernate在SQL查询中未找到引发的列clazz。作为一种解决方法,我尝试将伪列(如0)作为clazz注入,但出现了重复列错误。无论如何,如果我使用HQL查询,比如id=1的Employee,它将按id=1加载用户实例
我正试图找到一个完整的答案:
“为什么/何时使用抽象类而不是接口。”
并寻求以下方面的验证/建议
答案是,
“为其中一些提供实现。在具体类之前
进来定义特定类型,一个抽象类,通常就在下面
继承层次结构中的接口(如JavaAPI中的许多示例)
实现并固定接口定义的结构的一些常见方面
使用抽象类的另一个很好的原因是类型之间有一个清晰的逻辑层次结构。
抽象类用于组织该层次结构
通过作为抽象类而不是具体类,强制只在具体类上实例化对象
在这个层次结构中,它们是完全定义的,因此是有意义的。”
然后,在这种情
我有从基础模板继承的jinja模板。只是简单的延伸
例如,在setting.html中:
{% extends "templates/base.html" %}
但这会绊倒聚合物的硫化剂,它不了解遗传。那么,有没有办法先“展平”我的setting.html,即将base.html拉入setting.html,而不计算变量
我看了,但不太清楚api会做什么?唯一看起来很接近的可能是compile_templates()?但从文档中也不清楚这到底在做什么
compile_templates(tar
我正在尝试绘制如下的地图
public abstract class AnimalBLO { }
public abstract class AnimalDLO { }
public class HumanBLO : AnimalBLO { }
public class HumanDLO : AnimalDLO { }
public class LionBLO : AnimalBLO { }
public class LionDLO : AnimalDLO { }
internal
我刚刚获得了ACCOUNT旧示例,并使用字符串所有者的类型编写了一些代码:
class
ACCOUNT
create
make
feature
balance: INTEGER
owner: STRING
make
do
create owner.make_empty
end
minimum_balance: INTEGER = 1000
open (who: STRING)
do
owner := who
end
该应用程序的代
在Python中使用继承
class Animal(object):
def eat(self):
print self.name + " is eating " + self.get_food_type()
class Dog(Animal):
def __init__(self, name):
self.name = name
def get_food_type(self):
return "dog food"
在更新angular版本之前,当我有一个扩展类将所有DI按原样传递给它的super时,我曾经这样编写我的扩展类
class foo {
constructor(someDI di) { }
}
class bar extends foo {
//no constructor
}
在达到每个类的角度8后,我得到一个错误,如
Can't resolve all parameters for bar: (?)
这迫使我像这样重写我的酒吧:
class bar extends f
我想使用protobuf net将派生类序列化为其基类。换句话说,我希望序列化过程放弃任何类型派生的指示:
[ProtoContract]
class Base
{
[ProtoMember(1)]
public string PublicInfo { get; set; }
}
class Derived : Base
{
public string SecretInfo { get; set; }
}
class Program
{
static void
在我的项目中,我在eclipse Indigo中使用JPA2和Hibernate
我有一个抽象的BaseEntity类,它提供了项目中所有实体所需的一些字段。因此,该类由我在项目中使用的所有其他实体扩展。
BaseEntity中的一个字段是一个布尔字段deleted,该字段用于将条目标记为已删除(不允许从数据库中物理删除对象)。
现在,当我尝试在子类中设置命名查询并在WHERE子句中使用“NOT u.deleted”时,我从编译器中得到以下错误消息:
无法将状态字段路径“r.deleted”解析
我正在开发一个有许多面板的应用程序,所有面板都来自BasePanel用户控件。
使用应用程序与使用向导非常相似-每次在所有其他面板上方显示不同的面板时。
我想要一个计时器,这样当没有用户活动时,第一个面板就会显示出来
以下是基本面板代码:
public partial class BasePanel : UserControl
{
private Timer timer = new Timer();
public BasePanel()
{
Initia
假设类A的方法m调用类B上的方法n,但类B的源代码不包含n,因为n是从B的一个超类继承的
序列图看起来如何
A和B之间是否会通过方法n进行消息交互,或者A和B的超类之间是否会通过方法n进行消息交互?如果您尊重封装原则,那么交互将纯粹在A和B之间进行。B的实现使用继承这一事实与A中编写的代码无关-它唯一的世界视图是调用B上的方法
您可以在B中安全地更改实现,而不会影响A。这是以这种方式绘制交互关系图的另一个原因。序列图不关心继承。同意,序列是在运行时为对象行为建模,它不关心静态代码建模(如继承),
我正在尝试获取它,以便任何扩展base的控制器都可以访问使用以下方法创建的用户对象:
(这很好用)
但是,我在抽象用户的创建、从FooController.php中获取属性并将其放入BaseController.php中,以便任何扩展Base的控制器都可以访问它时遇到了问题,如下所示:
class FooController extends \BaseController
{
public function index()
{
return View::make(
我将检查/评估Symphony3的ACL功能。即使每个人都建议使用投票者,我也不确定它是否符合我的需要,所以我决定深入挖掘这个话题。正如我在源代码和中发现的,我使用了两种方法:
getParentAcl()
setParentAcl(AclInterface $acl = null)
这些方法是用于创建权限层次结构,还是用于其他目的
我想要的是一个»权限树«类似于:
+ registered User [VIEW, VOTE]
|
+-+ authorized User (le
如果不重新定义属性,如何在聚合物中观察到继承属性?例如,假设一个名为inheritedbehavior的行为模块有一个名为x的属性,并按照以下步骤添加到自定义模块中:
<dom-module id="foo-bar">
<script>
Polymer({
is: 'foo-bar',
behaviors: [
InheritedBehaviour
我有一个带有继承的EF6代码优先模型,例如:
[Table("Things")]
abstract class AbstractThing
{
public int ThingId { get; set; }
public string Color { get; set; }
}
class Car : AbstractThing
{
public string Brand { get; set; }
}
class Balloon : AbstractThing
{
我正在xamarin forms应用程序中开发ToolbarItem。我需要在整个应用程序中设置ToolbarItem。为此,我创建了CommonToolbarPage类,并使用ContentPage进行扩展,以便在所有页面中使用。但是Main.xaml.cs页面是通过TabbedPage继承的。如何将CommonToolbarPage与主页一起使用。
下面是页面类代码
public class CommonToolbarPage : ContentPage
{
public C
我正在尝试为一个辅助项目创建一个项目系统,并且正在测试结构中的继承。这并没有给我预期的结果:
struct Item
{
int price;
int id;
};
struct Iron : Item
{
int price = 10;
int id = 1;
};
struct Gold : Item
{
int price = 15;
int id = 2;
};
int main()
{
std::cout << "Hello World!
我正在尝试创建一个blazor页面,该页面有一个主布局和针对不同区域的各种继承布局。我想在主布局的头部呈现第二组菜单选项。我曾尝试使用renderfragments来实现这一点,但我无法让它工作,而且示例都是基于使用参数渲染子组件中的内容。这可能吗?如果没有,还有别的办法吗
目前,我有一个主布局,它在标题中有一个顶级导航菜单,并在引导容器中呈现主体
然后我有一个继承主布局的第二个布局。在这里,我想有一个额外的导航与内容的具体链接。问题是nav菜单在标题中,我希望主体在引导容器中呈现
这可能吗?
1 2 3 4 5 6 ...
下一页 最后一页 共 34 页