草庐IT

leaky-abstraction

全部标签

java - 方法名称互换 - public abstract 或 abstract public

我最近遇到了以下方法。我尝试使用谷歌搜索并做了一个示例,通过如下定义方法来查看差异;两者似乎是一样的。但是,我需要知道它是否真的一样?publicabstractvoidmethodName();abstractpublicvoidmethodName();注意:public和abstract在上述2个方法中已经互换了。 最佳答案 就功能而言没有区别,但无论您选择哪个,最好保持一致。话虽如此,我以前几乎从未见过使用过abstractpublic。因此,从编码标准的角度来看,publicabstract可能会更容易被更多人识别。

java - Class.newInstance() 是否遵循 "Abstract factory"设计模式?

我已经开始阅读JoshuaBloch的“EffectiveJava”(第二版)。在阅读第2项(在面对许多构造函数参数时考虑一个构建器)时,作者在Class.newInstance()方法中做了一个特别的陈述。具体来说,作者说ThetraditionalAbstractFactoryimplementationinJavahasbeenthe"Class"object,withthe"newInstance"methodplayingthepartofthe"build"method.这部分让我有点困惑-我对抽象工厂设计模式的理解是它用于表示工厂的工厂。在我看来,Class.newIns

c++ - 'non-virtual interface' 和 'abstract interface' 有什么区别?

我正在用C++实现设计模式,我希望我的类通过组合来利用接口(interface),这让我研究了实现接口(interface)的不同方法。我想澄清一下这个术语的定义。 最佳答案 非虚拟接口(interface)是一个公共(public)成员函数,它不是虚拟的,但通常希望根据可覆盖的虚拟函数来实现:classInterface{public:intcompute(){returncompute_impl();}private:virtualintcompute_impl()=0;protected:virtual~Interface()

c++ - 错误 : cannot declare variable ‘bg’ to be of abstract type ‘cv::BackgroundSubtractorMOG2’ in OpenCV 3

我最近在我的ubuntu14.10系统中安装了OpenCv并且我正在运行一个程序并且正在运行cv::BackgroundSubtractorMOG2我遇到了一个错误。错误是cannotdeclarevariable‘bg’tobeofabstracttype‘cv::BackgroundSubtractorMOG2’为什么我会遇到这个错误我的代码示例intmain(intargc,char*argv[]){Matframe;Matback;Matfront;vector>hand_middle;VideoCapturecap(0);BackgroundSubtractorMOG2bg;

c++ - 我应该为我的不透明对象使用整数 ID 还是指针?

我正在一些图形API(DirectX9和DirectX11)之上编写一个抽象层,我想听听您的意见。传统上,我会为每个要抽象的概念创建一个基类。因此,在典型的OO方式中,我会有一个Shader类和2个子类DX9Shader和DX11Shader。我会重复纹理等的过程...当我需要实例化它们时,我有一个抽象工厂,它将根据当前的图形API返回适当的子类。在RAII之后,返回的指针将被封装在std::shared_ptr中。到目前为止一切顺利,但就我而言,这种方法存在一些问题:我需要想出一个公共(public)接口(interface)来封装这两个API(以及future其他API)的功能。派

python - C++:迭代时std::vector中的push_back

以下代码片段提供了一个非常奇怪的输出。我期待一个溢出(Python给出一个MemoryError)#include#includeintmain(){std::vectora{1,2,3};for(autoconst&item:a)a.push_back(item);for(autoconst&item:a)std::cout输出:1,2,3,1,0,3,如何解释这个结果?如果你在Python中做类似的事情,它会给出一个内存错误。>>>a=range(0,20)>>>foriina:a.append(i)Traceback(mostrecentcalllast):File"",line

【论文解读】PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection

PV-RCNN摘要引言方法3DVoxelCNNforEfficientFeatureEncodingandProposalGenerationVoxel-to-keypointSceneEncodingviaVoxelSetAbstractionKeypoint-to-gridRoIFeatureAbstractionforProposalRefinement实验结论摘要我们提出了一种新的高性能3D对象检测框架,称为PointVoxelRCNN(PV-RCNN),用于从点云中精确检测3D对象。我们提出的方法深度集成了三维体素卷积神经网络(CNN)和基于PointNet的集合抽象,以学习更具判别

android - aSmack 错误 : XMPPConnection is abstract; cannot be instantiated

我正在按照教程使用AndroidStudio制作一个非常基本的聊天应用程序,但出现错误:Error:(131,45)error:XMPPConnectionisabstract;cannotbeinstantiated在以下行:ConnectionConfigurationconnConfig=newConnectionConfiguration(HOST,PORT,SERVICE);XMPPConnectionconnection=newXMPPConnection(connConfig);而且我在尝试使用XMPPConnection元素时也遇到了一些“未处理的异常”。同时链接到教程

Android RecyclerView : Abstract method not implemented

滑动以从Recyclerview中删除项目时应用程序崩溃。错误日志如下。它以前工作现在更新到com.android.support:recyclerview-v7:23.1.0和recyclerview-animators-1.2.2.jar。现在它崩溃了,请帮助我。提前致谢。FATALEXCEPTION:mainProcess:com.timecard,PID:2876java.lang.AbstractMethodError:abstractmethodnotimplementedatandroid.support.v7.widget.RecyclerView$ItemAnimat

java - 错误 : "class must implement abstract method X", 但它已经发生了

我有这个抽象父类(superclass):publicabstractclassMediaListActivityextendsActivity{...abstractvoidlaunchMedia(MediaFilemediaFile);}和具体的子类:publicclassVideoListActivityextendsMediaListActivity{...voidlaunchMedia(MediaFilemediaFile){//TODO:implementlaunchMedia()}}在VideoListActivity子类的第一行,AndroidStudio报错Class