标签: wrapper

包装类在Java中使用的设计模式?

我找到了一篇旧帖子,但没有说明我对Wrapper Classes使用的设计模式的理解,而且,从维基百科阅读时我没有得到任何明确的信息.

包装类是否真的使用任何设计模式?

如果使用模式,那么其模式是它的这些:Decorator Pattern,Facade PatternAdapter Pattern

design-patterns facade decorator adapter wrapper

15
推荐指数
3
解决办法
4424
查看次数

在Java程序中调用C#方法

由于不同的原因,无法使用JNI直接在Java中调用C#方法.首先,我们必须使用C++为C#编写一个包装器,然后创建dll并通过Java中的JNI使用它.

我在C++中调用C#代码时遇到问题.我正在将C#.netmodule文件添加到C++项目中.代码粘贴在下面.如果我做错了,请指导我.

这是我的托管C++类UsbSerialNum.h:

#using <mscorlib.dll>
#include <iostream>
#using "UsbSerialNumberCSharp.netmodule"

using namespace std;

using namespace System;

public __gc class UsbSerialNum
{
    public:

        UsbSerialNumberCSharp::UsbSerialNumberCSharp __gc *t;

        UsbSerialNum() {
            cout<<"Hello from C++";
            t = new UsbSerialNumberCSharp::UsbSerialNumberCSharp();
        }

        void CallUsbSerialNumberCSharpHello() {
            t->hello();
        }
};
Run Code Online (Sandbox Code Playgroud)

UsbSerialNumberCSharp.cs我创建.netmodule文件的C#文件:

using System.Collections.Generic;
using System.Text;

namespace UsbSerialNumberCSharp
{
    public class UsbSerialNumberCSharp
    {

        public UsbSerialNumberCSharp(){
            Console.WriteLine("hello");
        }

        public static void hello()
        {
            Console.WriteLine("hello");
        }

        public void helloCSharp ()
        {
            Console.WriteLine("helloCSharp");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我创建的主 …

c# c++ java java-native-interface wrapper

14
推荐指数
1
解决办法
4887
查看次数

什么是GCC lto包装?

我正在使用buildroot为嵌入式系统准备图像.我想导出buildroots内部交叉编译器,以便其他人可以使用相同的版本,命令检查GCC版本后:arm-linux-gcc -v我看到配置COLLECT_LTO_WRAPPER为我的硬盘上的静态位置

 COLLECT_LTO_WRAPPER=/home/user/arm/buildroot/output/host/usr/libexec/gcc/arm-unknown-linux-uclibcgnueabi/4.7.1/lto-wrapper
Run Code Online (Sandbox Code Playgroud)

它在另一个系统上是不正确的.

我只能发现LTO意味着链路时间优化.你能解释一下lto包装用什么时候需要什么?

gcc compilation cross-compiling wrapper lto

14
推荐指数
1
解决办法
7607
查看次数

如何在纯JavaScript页面上的不同DOM节点上注入Angular 2组件?

用例:客户端想要构建一个由Angular 2组件组成的库,但向该库的最终用户(开发人员)公开抽象的,与技术无关的接口,以便这些用户可能使用纯JavaScript并且不知道图书馆的内部.

困难来自以下方面:

  1. 有一个页面,它使用纯JavaScript.本页面由第三方开发.
  2. 第三方应该能够在页面上的特定位置(DOM节点)插入给定的Angular 2组件.
  3. 假设组件是<mg-input>,它应该显示在普通JavaScript页面的标题中,但不仅仅是在那里 - 也在页面下方的表单中.两个不同的地方,两个不同的DOM节点,它们之间有普通的html.

问题:我们如何在特定DOM节点上引导组件,以及如何将配置(不是基元而是复杂对象)传递给这些组件?

React世界上,这是通过简单地运行完成ReactDom.render(domEl, <CustomInput nonPrimitiveConfig={config}/>),并取决于什么domElи config时,该组件将在不同的地方有不同的配置呈现.

如何在Angular 2中做到这一点?

javascript wrapper angular

14
推荐指数
1
解决办法
632
查看次数

如何删除div包装器内的textarea下面的边距(webkit)

 <!DOCTYPE html>
 <html> 
 <head>
 </head>
 <body>
      <div style="background-color:#f09;">
           <textarea></textarea>
      </div>
 </body>
 </html>
Run Code Online (Sandbox Code Playgroud)

Chrome中的结果:

删除了死的ImageShack链接

结果为FF:

删除了死的ImageShack链接

webkit textarea margin wrapper

13
推荐指数
2
解决办法
8817
查看次数

Java中最近的FFTW包装器

我正在为最新版本的FFTW寻找一个最小的Java包装器.在FFTW网站上列出的包装器要么过时(jfftw-1.2.zip),要么包含太多额外的东西(Shared Scientific Toolbox).谷歌搜索建议JFFTW3看起来很有前景,但下载链接已经破了(有人有镜子吗?)

对于那些想要纯Java FFT库的人来说,JTransforms看起来非常好.我更喜欢使用FFTW,因为它大约快两倍,它处理任意尺寸d> 3.

java scala fft wrapper fftw

13
推荐指数
1
解决办法
3899
查看次数

轻量级包装 - 这是一个常见问题,如果是,它的名字是什么?

我必须使用一个库来进行非线程安全的数据库调用.另外,我偶尔也需要在后台线程中加载大量数据.
很难说哪些库函数实际访问了数据库,因此我认为对我来说最安全的方法是用锁来保护每个库调用.

假设我有一个库对象:

dbLib::SomeObject someObject;
Run Code Online (Sandbox Code Playgroud)

现在我可以这样做:

dbLib::ErrorCode errorCode = 0;
std::list<dbLib::Item> items;
{
    DbLock dbLock;
    errorCode = someObject.someFunction(&items);
} // dbLock goes out of scope
Run Code Online (Sandbox Code Playgroud)

我想将其简化为类似的东西(甚至更简单):

dbLib::ErrorCode errorCode =
    protectedCall(someObject, &dbLib::SomeObject::someFunction(&items));
Run Code Online (Sandbox Code Playgroud)

这样做的主要优点是我不必复制接口,dbLib::SomeObject以便用锁来保护每个呼叫.

我很确定这是一个常见的模式/习语,但我不知道它的名字或搜索的关键词.(看看http://www.vincehuston.org/dp/gof_intents.html我认为,它更像是一种成语而不是一种模式).

我在哪里可以查找更多信息?

c++ design-patterns locking idioms wrapper

13
推荐指数
2
解决办法
623
查看次数

如何用Python伪造类型

我最近开发了一个以DocumentWrapperPython中的一些ORM文档对象命名的类,以透明地向其添加一些功能,而无需以任何方式更改其接口.

我只有一个问题.假设我有一些User包裹在其中的对象.调用isinstance(some_var, User)将返回,False因为some_var确实是一个实例DocumentWrapper.

有没有办法伪造Python中的对象类型以获得相同的调用返回True

python types class wrapper

13
推荐指数
4
解决办法
7534
查看次数

包装类不适用于回调框架

包装类的缺点很少.需要注意的是,包装类不适合在回调框架中使用,其中对象将自引用传递给其他对象以进行后续调用("回调").因为包装对象不知道它的包装器,它会传递对它自己的引用(this),并且回调会逃避包装器.

有人可以用一个例子来解释这意味着什么.它是用Effective Java编写的,但我并没有完全理解它.

要添加到上下文,而不是继承,我们应该支持组合,而不是导致子类,Set我们应该使用这样的东西:

public class ForwardingSet<E> implements Set<E> {
 private final Set<E> s;
 public ForwardingSet(Set<E> s) { this.s = s; }
 public void clear() { s.clear(); }
 public boolean contains(Object o) { return s.contains(o); }
 ...
}
Run Code Online (Sandbox Code Playgroud)

但是,这将如何失败,我仍然无法理解回调.在JavaScript中,我们可以使用函数回调,但如果有人可以解释,相同的概念如何应用于Java.

java design-patterns coding-style callback wrapper

13
推荐指数
2
解决办法
1275
查看次数

自定义Cython生成的.so文件的位置

我有一个包含C库包装的Cython包.这是包的树结构

package/
       _api.pxd
       _wrap.pyx
       setup.py
       wrapper/
              __init__.py
              wrap.py
Run Code Online (Sandbox Code Playgroud)

python setup.py build_ext --inplace
Run Code Online (Sandbox Code Playgroud)

_wrap.so文件放在顶级package/目录中,这在大多数情况下通常是必需的.但是,我wrap.py需要_wrap.sopackage/wrapper/目录中.我想知道是否有一种方法setup.py可以.so在所需的位置创建文件,而无需手动复制并粘贴到该位置.

python wrapper cython

13
推荐指数
1
解决办法
3575
查看次数