标签: implementation

保持一切松散耦合和可扩展:太多层,ROI太小?

我(现在比以往任何时候都更多)看到开发人员编写了大量的图层,例如:

implementation PresentationLayer ->
    interface IMyDTO ->
        implementation MyDTO ->
            interface IMyService -> 
                implementation MyService -> 
                    interface IMyDomainRepository ->
                        implementation MyDomainRepository ->
                            interface IMyDomainObject -> 
                                implementation MyDomainObject ->
                                    interface IMyIndependentStorageLayer ->
                                        implementation MyMSSQLStorageLayer
Run Code Online (Sandbox Code Playgroud)

通过C#博客看,这似乎是自切片面包以来最好的事情.基本上,一切都松散耦合.不要直接使用域对象.通过服务层运行所有内容.通过存储库访问数据.所有图层都完全独立.

不要误解我的意思,我喜欢这个想法,但是不是时间上的权衡,特别是在一个更大的项目上?维护的投资回报率是否真的足以证明这一点?

我读到的解释有点尴尬,例如"如果需要,我可以附加不同的数据库".真?我不认为这是一个常见的问题,有人突然要求从MSSQL切换到Oracle,现在你坐在那里,希望你有一百万个层,彼此都不知道.

是否存在松散耦合过度的趋势,或者我只是在阅读错误的博客?你觉得这个怎么样,并且你有过这样的情况,你以后真的很高兴你在开始时做了额外的工作吗?

implementation design-patterns interface code-design

10
推荐指数
0
解决办法
569
查看次数

10
推荐指数
1
解决办法
8053
查看次数

强大的算法太复杂而无法实现

合法实用程序的哪些算法太复杂而无法实现?

让我说清楚:我不是在寻找像当前渐近最优矩阵乘法算法这样的算法,这种算法合理实现但是有一个常数使得它在实践中无用.我正在寻找可能具有实用价值的算法,但是编码非常困难,以至于它们从未实现过,只能在非常人为的设置中实现,或者只能用于非常特殊的应用程序.

同样受欢迎的是几乎不可能实现的算法,它们具有良好的渐近性但可能具有较差的实际性能.

theory algorithm implementation

10
推荐指数
2
解决办法
3505
查看次数

计算布尔括号内的实现

给定包含符号{true,false,和,或xor}的布尔表达式,计算括号表达式的方式的数量,使其计算结果为true.

例如,只有一种方法可以将'true和false xor true'括起来,使其计算结果为true.

这是我的算法

we can calculate the total number of parenthesization of a string
Definition:  
N - the total number of 
True -  the number of parenthesizations that evaluates to true
False - the number of parenthesizations that evaluates to false
True + False = N 
Left_True - the number of parenthesization in the left part that evaluates to True
same to Left_False, Right_True, Right_False

we iterate the input string from left to right and deal with each …
Run Code Online (Sandbox Code Playgroud)

algorithm implementation dynamic-programming

10
推荐指数
1
解决办法
6135
查看次数

为什么size_t更好?

标题实际上有点误导,但我想保持简短.我已经读过为什么我应该使用size_t,我经常发现这样的语句:

size_t 保证能够表达任何对象的最大大小,包括任何数组

我真的不明白这意味着什么.是否可以一次分配多少内存,并且size_t保证足够大以计算该内存块中的每个字节?

后续问题:
什么决定了可以分配多少内存?

c implementation size-t

10
推荐指数
2
解决办法
1122
查看次数

如何实现闪光灯中的Perlin噪声?

gamedev.SE上,我们发现Perlin-noiseflash实现似乎与其他实现有很大不同.

我没有在网上找到任何实现细节,但我想知道是否有人可以告诉哪个算法用于闪存中的Perlin-noise.

使用bitmapData.perlinNoise(32, 32, 1, 200, false, false, 7, true);产生这样的图像,其中只有numOctaves参数已经改变(1,2,4由左到右):

闪光灯中的柏林噪音

然而,Perlin噪声的其他实现看起来完全不同.例如维基百科关于Perlin-noise的文章中的图片:

维基百科上描述的Perlin噪音

此外培林噪声的这个ActionScript实现产生完全不同的结果,因为你可以在下面的图片看到(八度音阶1,24从左至右):

柏林噪音AS3

我最感兴趣的是只有一个八度的噪音.在闪存实现中,您可以清楚地看到,噪声正在形成像分离的斑点.

重要提示:闪存中产生的噪声false用于fractalNoise参数.如果fractalNoise设置为true,则结果实际上与维基百科和其他实现中的结果非常相似.

参数说明如下:

布尔值.如果该值为true,则该方法生成分形噪声; 否则会产生湍流.具有湍流的图像在梯度中具有可见的不连续性,这可以使其更好地近似更清晰的视觉效果,如火焰和海浪.

我们可以看到,他们谈到湍流来描述产生噪音的方法.所以我想问题是:闪存产生的输出是否仍然是Perlin噪声?或者那种噪音还有另一个名字吗?最重要的是:哪里可以找到一个像这样产生噪音的实现?

flash implementation perlin-noise

10
推荐指数
1
解决办法
2326
查看次数

Java中的OutputStream是阻塞的吗?(插座)

我目前正在为一个项目编写天真的网络代码,并且一位伙伴暗示我有可能当我以一种迭代的方式从服务器向所有客户端发送信息包时,当其中一个客户端没有正确响应时,我可能会遇到严重的延迟.

他因拖钓而闻名,所以当我实现一个现在负责将数据发送到客户端的辅助线程时,我有点怀疑,它有一个队列,服务器只是简单地添加了包,然后被线程读取以发送数据.

在考虑它之后我现在遇到的问题是天气与否,Java Socket的OutputStream实际上将他想要发送的东西排队,因此事先不需要队列.只有当客户端没有收到来自客户端的已收到发送对象的响应时,才会出现发生严重问题的可能性.

谢谢.

java sockets implementation outputstream blocking

10
推荐指数
2
解决办法
2万
查看次数

OpenCV SURF功能未实现

当我尝试运行示例find_obj.cpp或任何OpenCV SURF程序时,我在执行代码时在命令提示符中收到以下错误.该项目的构建没有错误和警告.我正在使用VS2011 beta,OpenCV 2.4和windows7.

错误信息:

OpenCV Error: The function/feature is not implemented < OpenCV was built without SURF support> in unknown function,file ..\..\..\src\opencv\modules\legacy\src\features2d.cpp, line 77
Run Code Online (Sandbox Code Playgroud)

我尝试在调试模式下使用Cmake然后再使用VS2011再次构建OpenCV 2.4,然后在IDE中添加了lib路径,但仍然没有结果.

我该如何解决这个问题?

    #include <opencv2/objdetect/objdetect.hpp>
    #include <opencv2/features2d/features2d.hpp>
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/legacy/legacy.hpp>
    #include <opencv2/legacy/compat.hpp>
    #include <opencv2/flann/flann.hpp>
    #include <opencv2/calib3d/calib3d.hpp>
    #include <opencv2/nonfree/features2d.hpp>
    #include <opencv2/nonfree/nonfree.hpp>

using namespace std;
using namespace cv;
int main()
{
    cv::initModule_nonfree();//THIS LINE IS IMPORTANT   

   IplImage *image1 = cvLoadImage("C:\\SURF\\1.jpg"); 
    IplImage *image2 = cvLoadImage("C:\\SURF\\2.jpg");

    CvMemStorage* memoryBlock = cvCreateMemStorage();
    CvSeq* image1KeyPoints;
    CvSeq* image1Descriptors;
    CvSeq* …
Run Code Online (Sandbox Code Playgroud)

c++ implementation opencv surf visual-c++

10
推荐指数
2
解决办法
3万
查看次数

PHP接口和抽象类继承的最佳实践?

在定义结构并继承Interface和/或Abstract Class时,哪一个是最佳实践?为什么?这里有两个例子:

以下是[Interface] - > [Abstract Class] - > [Class]的示例

Interface DataInterface
{
    public function __construct($connection);
    public function connected();
    public function get();
}

Abstract class BaseData implements DataInterface
{
    protected $connection;

    public function __construct($connection)
    {
        $this->connection = $connection;
    }
}


class UserData extends BaseData
{
    public function exists()
    {
        return is_connected($this->connection);
    }

    public function get()
    {
        return get_data($this->connection);
    }
}

$oUserData = new UserData(new Connection());
Run Code Online (Sandbox Code Playgroud)

这里是没有接口的[Abstract Class] - > [Class]的示例

Abstract class BaseData
{
    protected $connection;

    public function __construct($connection)
    { …
Run Code Online (Sandbox Code Playgroud)

php inheritance implementation abstract-class

10
推荐指数
1
解决办法
2万
查看次数

协议之间的实现冲突

我偶然发现了一个问题,我无法弄清楚如何解决它.

假设我们有一个基类(可能来自FrameworkA),其属性名为subject:

public class MyClass {
    public var subject: String
}
Run Code Online (Sandbox Code Playgroud)

我们有一个协议(可能来自FrameworkB),另一个属性但具有相同的名称:

public protocol MyProtocol {
    var subject: String { get }
}
Run Code Online (Sandbox Code Playgroud)

这两个属性代表完全不同的东西.

如何创建一个继承MyClass和实现的类MyProtocol?我该如何使用这些属性?

public class SecondClass: MyClass, MyProtocol {
    var MyProcotol.name: String { // <==== Obviously not allowed
        return "something"
    }
    var MyClass.name: String { // <==== Obviously not allowed
        return "something else"
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为C#允许这样的声明,但我不是100%肯定...

oop inheritance implementation protocols swift

10
推荐指数
1
解决办法
815
查看次数