Форум программистов, компьютерный форум CyberForum.ru

Гибкая архитектура и порождающие паттерны - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Умножение матриц http://www.cyberforum.ru/cpp-beginners/thread964424.html
Я юзаю Qt, но пишу сюда т.к. он никак не влияет на код (почти) У меня есть две матрицы A и B (размерность обеих 800х800). Чтобы получить матрицу AB я делаю: for(int i = 0; i < 800; i++){ for(int j = 0; j < 800; j++){ for(int m = 0; m < 800; m++){ AB += A*B; } } }
C++ Среднее значение Нужно посчитать среднее значение всех элементов стека. Но результат всегда ноль. Помогите пожалуйста! #include <stdio.h> #include <conio.h> #include <iostream.h> #include<stdlib.h> #include<time.h> #define LEN 100 http://www.cyberforum.ru/cpp-beginners/thread964422.html
C++ Не работает одна программа
Вот программа. Нужно, чтобы она выводила 1. Три числа с длинной строки 6 2. Дви числа с длинной строки 6 и точностью после запятой 3 3. Три символа с длинной строки 5 4. Три строчки с длинной строки 6 и количеством символов в строке 8 #include "stdafx.h" #include <conio.h> #include <stdio.h> using namespace std;
Не получается "чистый ноль" C++
Доброго времени суток. Довольно банальная проблема, но заставила меня сильно попотеть! for(double x = -0.5; x <= 0.5; x += 0.01) { cout << x << endl; } При выводе, когда время доходит до 0, вместо него получается 3.08781е-016. Прошу решить проблему, используя поток вывода cout, и не меняя структуру цикла.
C++ Передача вектора из класса в класс? http://www.cyberforum.ru/cpp-beginners/thread964394.html
Доброго времени суток! У меня возникла проблема в очень простой программе. Я передаю функции из класса board.cpp в класс test.cpp. У меня выдает g++ следующую ошибку: /tmp/cc7v3lIw.o: In function `main': test.cpp:(.text+0x20): undefined reference to `Board::read_grid(int)' test.cpp:(.text+0x5f): undefined reference to `Board::print_grid(std::vector<std::vector<int, std::allocator<int> >,...
C++ Вывод матрицы на экран //* С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического. //* Разрешается при этом использовать только один оператор цикла(кроме цикла ввода матрицы). как написать вывод матрицы на экран после ввода строк и столбца? #include <iostream> #include <windows.h> using namespace std; int main() подробнее

Показать сообщение отдельно
Melg
416 / 152 / 62
Регистрация: 23.09.2013
Сообщений: 306
28.09.2013, 19:55     Гибкая архитектура и порождающие паттерны
У меня возник вопрос следующего характера.
Предположим, что есть некоторый интерфейсный класс фильтра, есть реализации, наследованные от него, есть класс - контейнер, который умеет регистрировать в себе фильтры и последовательно их применять и вычислять конечный результат по логическому или. И есть класс - кусок MVC паттерна проектирования, который зарегестрированный контейнер с фильтрами уже умеет использовать для отображения отфильтрованных данных.
Эта система является высоко гибкой, открытой для расширения, масштабируемой, но эта гибкость и абстрактность - вызывает у меня проблемы, когда я хочу ей воспользоваться. А именно, для того что-бы конкретизировать свои намерения в использовании фильтров я должен написать в коде что-то вроде:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[CPP]
#include "filteringinterface.h"
#include "filtercontainerinterface.h"
#include "crazymvcpart.h"
#include "user.h"
 
#include "filetypefilter.h"           // :( so bad
#include "userfilefilter.h"           
#include "orfiltercontainer.h"   
 
 
int main(int argc,char **argv) {
   FilterInterface *file_type_filter = new FileTypeFilter(".txt");
   UserFileFilter *user_file_filter = new UserFileFilter;
   User *user = GetUserFromHell();
   user_file_filter->SetUser(user);
   FilterInterface *setupped_user_file_filter = user_file_filter;
 
   FilterContainerInterface *or_filter_container = new OrFilterContainer;
   or_filter_container->RegisterFilter(file_type_filter);
   or_filter_container->RegisterFilter(setupped_user_file_filter);
   
   CrazyMvcPart *mvc_part = new CrazyMvcPart;
   mvc_part->RegisterFilterContainer(or_filter_container);
   mvc_part->ShowFilteringResults();
}
[/CPP]

В чём суть проблемы - во-первых, допустим у меня 5 мест в коде где я хочу использовать мою наизамечательнейшую систему демонстрации фильтрованных данных, но в одном случае нужно фильтровать одними фильтрами, по правилу .txt в другом - другими - по другому правилу... А этот код приходится вызывать целиком. Во-вторых, я не могу в рантайме взять и подменить этот самый способ - всё инстанцирование уже захардкожено, и его нельзя будет изменить. В-третьих я жескто связываю "пользовательский" код - со всеми реализациями - т.е. заставляю пользователя инклюдить все хедеры, всех инстанцируемых сущностей, будь то фильтры, контейнер фильтров, или часть MVC. Но, при этом, только пользовательский код знает наверняка что нужны именно фильтры по типу, с тонкой настройкой ввиде ".txt" формата.
Отсюда возникает вопрос, каким образом построить систему инстанцирования фильтров, и контейнера фильтрации - так, что-бы с одной стороны - она так-же была гибкой, расширяемой, независимой от реализации, но при этом позволяла на стороне пользователя однозначно задавать и настраивать фильтры. Я бы очень хотел услышать ответы в коде, либо в терминологии применения паттернов проектирования, с некоторыми комментариями к заданой конкретике. Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru