小编Bor*_*lov的帖子

Java Swing:如何正确实例化GUI并传递域对象?

我有一个嵌套面板的GUI(带有嵌套面板的标签等).我需要将域对象传递给深层嵌套的面板.我可以想到两种方式:

  • 在一个地方实例化所有gui对象,比如帧类.这将使传递域对象变得简单,但Frame类将是巨大的并且难以管理.

  • 每个面板都有自己的类,我们在其中实例化和布局其
    组件.现在它易于维护,类很干净,但是如何
    传递我的域对象链呢?我不想通过甚至不知道它们
    存在的面板构造器来链接它们.顶级面板将有大量的这些对象开始.

Niether的方式似乎是一种洗礼.你通常如何接受这个?

java oop swing design-patterns

6
推荐指数
1
解决办法
1718
查看次数

如何避免到处传递上下文对象?

可能的重复:
依赖地狱 - 如何将依赖关系传递给深度嵌套的对象

最近我一直在为这个特殊问题而苦苦挣扎。出于测试和管理的原因,我认为向需要它的人注入像 $config 这样的对象将是一个更好的选择。虽然一开始还好,但后来就开始污染代码了。例如:对象A使用对象B来完成其工作,对象B使用策略对象C,对象C使用对象D,这需要$config对象。所以,我必须继续将 $config 传递到整个链中

在我的代码中,我有两个这样的对象要传递,这使得构造函数很大,有重复的代码,而且通常味道不对。如果您能帮助重构这种关系,我将不胜感激。

php oop design-patterns

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

std :: sort使用继承的函子

我想使用不同的策略来对矢量进行排序.但我无法弄清楚如何传递子仿函数并在std::sort以后使用它.每当我使用抽象类进行排序策略时,我最终都会cannot allocate an object of abstract type出错.有没有办法使用继承的仿函数作为std::sort参数?谢谢!

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;


class BaseSort{
public:
    virtual ~BaseSort() {};
    virtual bool operator()(const int& a, const int& b) = 0;
};

class Asc : public BaseSort{
public:
    bool operator()(const int& a, const int& b){
        return a < b;
    }
};

class Desc : public BaseSort{
public:
    bool operator()(const int& a, const int& b){
        return a > b;
    }
};

void print(const vector<int>& …
Run Code Online (Sandbox Code Playgroud)

c++ pointers std c++11

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

标签 统计

design-patterns ×2

oop ×2

c++ ×1

c++11 ×1

java ×1

php ×1

pointers ×1

std ×1

swing ×1