小编Ric*_*eal的帖子

不那么干净的架构

我想在C++编写代码(C++ 11)根据鲍勃叔叔马丁所描述的清洁建筑理念很简单的例子在这里(下图):

在此输入图像描述

这个想法是由Controller读取一些文本并由Presenter打印.我已经做了一些事情,但它看起来并不像它正在遵循博客文章的干净流程和DIP.

除此之外,我认为流程是错误的,例如,IUseCaseInputPort需要知道IUseCaseOutputPort(读取函数将IUseCaseOutputPort作为输入参数,从而创建另一个依赖项......).

如果有人能给我一些关于实现这个的最佳方法的提示,我将非常感激.提前谢谢了.

#include <iostream>
#include <string>
#include <memory>

class IUseCaseOutputPort {
public:
    virtual void print(std::string message) = 0;
    virtual ~IUseCaseOutputPort() {};
};

// 2 Presenters
class HtmlPresenter: public IUseCaseOutputPort {
public:
    void print(std::string message) {
        std::cout << "<p>" << message << "</p>" << std::endl;
    }
};

class TextPresenter: public IUseCaseOutputPort {
public:
    void print(std::string message) {
        std::cout << message << std::endl;
    }
};

//
class IUseCaseInputPort {
public:
    virtual void read(std::shared_ptr<IUseCaseOutputPort> output) = …
Run Code Online (Sandbox Code Playgroud)

c++ oop c++11

9
推荐指数
1
解决办法
1244
查看次数

在浏览器上以 3D 形式绘制 10 亿个点

我有大约200 x 200 x 200 x 150需要在浏览器上绘制的网格。

这可以表示为Xx Yx Zx Color。3D 散布通常具有此功能。

我已经尝试过plotly.Scatter3d对于较小的数据集来说效果很好。

我看了一下,Datashader但不幸的是只适用于 2D。我也检查了Datashader+Holoviews但没有找到任何解决方案......

我越接近的是来自 PlotLy 的 MRI Slice 示例:https://plot.ly/python/visualizing-mri-volume-slices/

如果有可能添加额外的切片器(X、Y 和 Z),这可能是一个解决方案。不是我想要的,而是一个解决方案。

任何如何实现这一目标的想法将不胜感激。谢谢

python plotly holoviews datashader

5
推荐指数
1
解决办法
2207
查看次数

标签 统计

c++ ×1

c++11 ×1

datashader ×1

holoviews ×1

oop ×1

plotly ×1

python ×1