草庐IT

composition

全部标签

java - 使用 Java 中的组合和接口(interface)进行设计

我针对一个问题设计了以下内容:classAnimal{//...}classGuppyextendsAnimal{...}classPigeonextendsAnimal{...}classTailedAnimalextendsAnimal{//...}classDogextendsTailedAnimal{...}classCatextendsTailedAnimal{...}classHornedAnimalextendsAnimal{//...}classRamextendsHornedAnimal{...}publicstaticvoidmain(String[]args){A

java - 如何在 SWT 中绘制 Composite 的子元素?

我知道要在Composite上绘图,您可以添加一个绘图监听器,但这会导致在子项下绘图。如果我想在children的上方画画怎么办?下面画了一条线,但是subc画在了它上面。Compositec=newComposite(shell,0);c.setBackground(shell.getDisplay().getSystemColor(SWT.COLOR_BLUE));c.setBounds(100,100,800,600);c.addPaintListener(newPaintListener(){publicvoidpaintControl(PaintEvente){e.gc.dr

java - 如何让 Label 在 SWT 中继承 Composite GC

我正在编写一个应用程序,我们的设计师想要对我们的一些合成Material的某些背景使用渐变。我写了下面的代码:composite.addListener(SWT.Paint,newListener(){publicvoidhandleEvent(Evente){GCgc=e.gc;Rectanglerect=composite.getClientArea();Colorcolor1=newColor(display,0,0,0);Colorcolor2=newColor(display,255,255,255);gc.setForeground(color1);gc.setBackgr

java - 如何在 SQL 中使用 NOT EXISTS 和 COMPOSITE KEYS 从 POJO 插入数据

我正在使用DB2数据库管理系统。场景1:myTable有一个组合键(key1,key2),其中key1和key2都是yourTable的外键。我想将新数据从yourTable插入到myTable,但前提是myTable中不存在key1、key2组合。insertintomyTable(key1,key2,someData)values(x,y,z)whereNOTEXISTS(wanttocheckifcompositekeyisnotalreadypresent)场景2:我将数据从yourTable放入一个具有属性data1、data2和data的java对象中。我想像场景1一样插入

java - 子接口(interface)如何重用其父接口(interface)的实现?

最近我参加了一个面试,被问到以下问题。给定以下类/接口(interface)结构:问题:如何实现接口(interface)EmployedStudent以重用来自StudentImpl和EmployeeImpl的代码。我建议将Employee和Student组合到我的实现中。根据面试官的react,我认为他们认为这不是最佳解决方案。我花了很多时间思考它,但我无法想出其他解决方案。 最佳答案 创建一个同时实现Employee和Student的类。在您的类中,创建EmployeeImpl和StudentImpl的实例。然后让您的类将所有

java - GWT:AcceptsOneWidget vs Composite vs IsWidget

GWT有许多名称相似(并且看似用途相似)的类型:小组件AcceptsOneWidget复合IsWidget简单面板何时/何地适合使用其中的每一个?它们与RootPanel有什么关系? 最佳答案 让我们首先将接口(interface)与类分开。接口(interface)非常适合模拟(因此无需缓慢的GWTTestCase即可测试您的应用):IsWidget:当您只需要一个小部件的句柄,而不依赖于小部件类。这通常与MVP一起用作表示View的方式。AcceptsOneWidget:当您需要单个小部件的占位符时(以IsWidget的形式)。

Vue3.0 所采用的 Composition Api 与 Vue2.x 使用的 Options Api 有什么不同?

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助开始之前CompositionAPI 可以说是Vue3的最大特点,那么为什么要推出CompositionApi,解决了什么问题?通常使用Vue2开发的项目,普遍会存在以下问题:代码的可读性随着组件变大而变差每一种代码复用的方式,都存在缺点TypeScript支持有限以上通过使用CompositionApi都能迎刃而解正文一、OptionsApiOptionsAPI,即大家常说的选项API,即以vue为后缀的文件,通过定义methods,computed,watch,data等属性与方法,共同处理页面逻辑如下图:可以看到Options代

java - 如何用 Java 编写可靠的纯聚合(组合)游戏对象?

所以我刚开始用Java编写游戏,我正在编写我的游戏对象。现在我在这里阅读了EvolveYourHierarchy你应该将你的游戏构建为组合而不是大类层次结构。正如上一个链接中的这张图片所示:但是,当真正开始实现时,我有一个关于在何处应用接口(interface)的小问题。假设您有一个名为Player的类以及接口(interface)Moveable和Renderable。您是否使用公共(public)接口(interface)变量来实现它:classPlayer{publicMoveablemoveable;publicRenderablerenderable;}classGeneri

java - 继承、组合和默认方法

通常承认通过继承扩展接口(interface)的实现不是最佳实践,并且组合(例如,从头开始重新实现接口(interface))更易于维护。这是可行的,因为接口(interface)契约强制用户实现所有需要的功能。但是在Java8中,默认方法提供了一些可以“手动”覆盖的默认行为。考虑以下示例:我想设计一个用户数据库,它必须具有列表的功能。为了提高效率,我选择用ArrayList来支持它。publicclassUserDatabaseextendsArrayList{}这通常不会被认为是很好的实践,如果真的想要List的全部功能并遵循通常的“组合优于继承”的座右铭,人们会更喜欢:publi

java - 直觉与设计原则

我有一个像这样的类层次结构Beverage->Coffee->Latte。其中Beverage是由Coffee扩展的abstract父类(superclass)。Coffee类随后添加了一些行为,但也是抽象。Latte扩展了Coffee类并且是一个具体类。我在这里使用继承来添加行为。而且继承确实有缺点,比如父类(superclass)方法的可见性,使代码脆弱,代码紧耦合。因此,编程原则规定Composition应该优先于Inheritance。但在这种情况下,inheritance感觉很自然,因为Latte是Coffee的一种,而Coffee是Beverage使用composition