2015-03-25 5 views
4

Я начал рисовать пробки на Java, например, коннекторы, используя кривые безье, но только визуальные материалы.Модульные шаблоны дизайна

example

Тогда я начинаю интересно о том, какой вид модульной вещи, с входами и выходами. Однако я очень смущен решениями о том, как его реализовать. Скажем, например, модульный синтезатор или концепции Pure Data/MaxMSP, в которых у вас есть модули, а любой модуль имеет атрибуты, входы и выходы.

Интересно, знаете ли вы, какие ключевые слова я должен использовать, чтобы найти что-то, что нужно прочитать. Мне нужны некоторые базовые примеры или абстрактные идеи, касающиеся такого интерфейса. Есть ли какой-то дизайн, который подходит для этой идеи?

+0

Ну «модулей» не хорошее определение того, что вы необходимость. Обычно это означает часть более крупной системы, которую вы можете добавить или удалить - например, модуль для отправки электронных писем в ваших cms или что-то в этом роде. О шаблонах проектирования - большинство из них здесь не для того, чтобы реально решить проблему, но чтобы было проще использовать/изменять/перемещать и т. Д., И если это хорошо или не использовать их, оно отличается тем, что вам нужно. Вы можете попытаться создать «бета-версию» вашего приложения, классы и intefaces Java имеют достаточную изменчивость и функциональность ... – libik

+0

Хорошо, может быть, мне не нужен какой-либо шаблон. Я думал, что мне понадобится Наблюдатель. Я должен начать с чего-то вроде [this] (http://i.imgur.com/Hw66MLc.jpg), где [O] - OutNode, [I] - это InNode и кабели между этими объектами Connection. Что-то очень простое. Я не уверен, как начать. – whitenoisedb

+0

Я бы начал с простого интерфейса с методами «ввод, вывод, процесс», чем вы можете создавать классы, которые его реализуют. В вашем основном классе вы должны создать какой-то движок, который будет вводить, выводить и обрабатывать все экземпляры. – libik

ответ

-1

Поскольку вы просите за ключевое слово в реальном времени шаблонов проектирования, чрезмерно ООП часто является узким местом производительности для приложений реального времени, так как все объекты (и я предполагаю, что полиморфизм в какой-то степени) добавить накладные расходы.

Почему приложение в реальном времени? Полученный график выглядит очень сложным, Вы обрабатываете поступающие данные несколько раз параллельно, разбиваете его, объединяете и т. Д.

Каждый узел графика добавляет разные эффекты и производит разные вычисления, где некоторые вычисления могут занимать больше времени, чем другие, - это приводит к выводу, что для того, чтобы иметь однородные данные (звук), вы должны хранить данные в синхронизации. Это не тривиальная задача.


Я предполагаю, что некоторые другие ключевые слова будут: обработка звука, фильтр. Или вы могли бы попросить компании, которые работают в этой области для литературы.


Оставив чувствительность время в сторону, я построил небольшой пример объектно-ориентированного программирования, может быть, подобный подход является достаточным для менее сложных сценариев

public class ConnectionCable implements Runnable, Closeable { 
    private final InputLine in; 
    private final OutputLine out; 

    public ConnectionCable(InputLine in, OutputLine out) { 
     this.in = in; 
     this.out = out; 
     // cable connects open lines and closes them upon connection 
     if (in.isOpen() && out.isOpen()) { 
      in.close(); 
      out.close(); 
     } 
    } 

    @Override 
    public void run() { 
     byte[] data = new byte[1024]; 
     // cable connects output line to input line 
     while (out.read(data) > 0) 
      in.write(data); 
    } 

    @Override 
    public void close() throws IOException { 
     in.open(); 
     out.open(); 
    } 
} 

interface Line { 
    void open(); 
    void close(); 
    boolean isOpen(); 
    boolean isClosed(); 
} 

interface InputLine extends Line { 
    int write(byte[] data); 
} 

interface OutputLine extends Line { 
    int read(byte[] data); 
} 
+0

Кто сказал что-нибудь о реальном времени? Ничего общего с этим. – EJP

+0

Я сделал, и я изложил свои причины во втором и третьем абзацах. – mike

+0

И как именно ваши причины связаны с вопросом? – EJP