Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Olhei através do meu novo prisma, um híbrido de OOP e Kernel, para os sistemas de objetos descritos nos programas, e quase explodi meu cérebro. Antes de mais nada, dei uma nova olhada em meus sistemas de GUI. Através de todos esses objetos - parâmetros, objetos-estados, objetos-eventos e manipuladores. Como a GUI e sua tecnologia me é familiar, tudo parecia bastante claro, mas, o sistema é muito complexo. Uma massa de parâmetros, mapeamentos e manipuladores. Cheguei à conclusão de que tais sistemas não podem surgir por si mesmos. E a seleção natural não tem poder aqui.
Eis o porquê:
Cada parâmetro pode ter n número de parâmetros derivados. Digamos: uma mudança de X pode gerar infinitamente muitos parâmetros derivados dos valores desse X em um determinado momento.
Cada parâmetro derivado deve ter um manipulador e um link para outros parâmetros. Nenhum parâmetro existe por si só. O link é obrigatório.
O acoplamento pode ser diferente, e conseqüentemente uma variedade de manipuladores-filtros, corretores, transdutores-canais podem aparecer.
Os eventos que podem ser considerados significativos para os sistemas são indefinidamente muitos. Cada um tem suas próprias propriedades, links e manipuladores. As variações são inumeráveis.
Assim, sem um conceito, nenhum sistema pode surgir. (Muito provavelmente).
Só não está claro como se originou a vida na Terra.
Aqui está outro exemplo:
Considere um sistema para mover uma janela com controles em um gráfico.
Assim, com este sistema, podemos mudar as coordenadas de uma janela e seus objetos no caso de seu cabo ser agarrado pelo cursor. Para mover tudo isso, precisamos associar tudo com as funções do ObjectSetInteger handler que mudam a posição do objeto MT no gráfico.
Esta é uma implementação de apenas uma função GUI, ligando blocos especiais do sistema - Object Parameters, Object Handlers, etc...
Construir tal sistema no Kernel, não é um pouco mais fácil (ou talvez até mais difícil) do que escrever código normal sem transformar tudo em um Objeto. Mas, vou continuar cavando...
ZS. Esqueci de acrescentar que, para mover a janela, também precisamos "criar" um Objeto de Evento, que trava o manípulo da janela e o movimento do cursor. E este objeto de evento, conecte-o ao manipulador de objetos dos valores x,y do cursor (que escreve a diferença nos parâmetros derivados), e ele funcionaria apenas no sinal deste evento.
E para cada objeto de evento, você precisa criar um manipulador de objetos e prendê-lo a ele.
Cada manipulador de objetos tem suas próprias propriedades, e os valores que utiliza ao trabalhar com parâmetros ou eventos. Portanto, deve haver um modelo, ou você ficará atolado ao criar tudo isso).
Aqui está outro exemplo:
Considere um sistema para mover uma janela com controles em um gráfico.
Assim, com este sistema, podemos mudar as coordenadas de uma janela e seus objetos no caso de seu cabo ser agarrado pelo cursor. Para mover tudo isso, precisamos associar tudo com as funções do ObjectSetInteger handler que mudam a posição do objeto MT no gráfico.
Esta é uma implementação de apenas uma função GUI, ligando blocos especiais do sistema - Object Parameters, Object Handlers, etc...
Construir tal sistema no Kernel, não é um pouco mais fácil (ou talvez até mais difícil) do que escrever código normal sem transformar tudo em um Objeto. Mas, vou continuar cavando...
ZS. Esqueci de acrescentar que para mover a janela, também precisamos "criar" um Objeto de Evento, que trava o manípulo da janela e o movimento do cursor. E este objeto de evento, conecte-o ao manipulador de objetos dos valores x,y do cursor (que escreve a diferença nos parâmetros derivados), e ele funcionaria apenas no sinal deste evento.
E para cada objeto de evento, você precisa criar um manipulador de objetos e ligá-lo a ele.
Cada manipulador de objetos tem suas próprias propriedades, e seus valores são utilizados por ele quando trabalha com parâmetros ou eventos. Portanto, deve haver um modelo, ou você ficará atolado ao criar tudo isso).
Complicado. Incomplicado de forma injustificável.
É isso mesmo.
A ligação entre parâmetros derivados contendo a diferença x,y do cursor e objetos de forma (que estão na cadeia) tem um manipulador no centro que pode realizar uma conexão serial com os parâmetros x,y de cada objeto de forma. Ou seja, os parâmetros de ligação através do manipulador de conexão serial permitem substituir a ligação de cada objeto de formulário por parâmetros derivados que passam valores de diferença x,y. Eu também estava pensando sobre isso.
Em minha GUI, a movimentação de janelas é implementada dentro da função de fazer o seguinte:
(1) Verificador de eventos para a maçaneta da janela clique evento
(2) Mover evento do cursor
(3) Cálculo da diferença entre as coordenadas do cursor atual e as coordenadas do cursor anterior
(4) Ciclar através dos objetos da janela e mudar suas coordenadas, ajustando a diferença na posição do cursor.
(5) Chamando o ObjectSetInteger para mover o МТ-objeto do formulário da janela (lona) ao longo do gráfico pela distância dada.
Portanto, a implementação dentro da função é correta. A implementação através de Object Handlers, Object Parameters e Object Bindings parece estranha contra este pano de fundo. Mas, vamos cavar...
Isto é correto.
O mapeamento entre os parâmetros derivados contendo a diferença x,y do cursor e os objetos de formulário (que estão na cadeia) tem um manipulador no meio que pode realizar uma conexão serial com os parâmetros x,y de cada objeto de formulário. Ou seja, os parâmetros de ligação através do manipulador de conexão serial permitem substituir a ligação de cada objeto de formulário por parâmetros derivados que passam valores de diferença x,y. Eu também estava pensando sobre isso.
Em minha GUI, a movimentação de janelas é implementada dentro da função de fazer o seguinte:
(1) Verificador de eventos para a maçaneta da janela clique evento
(2) Mover evento do cursor
(3) Cálculo da diferença entre as coordenadas do cursor atual e as coordenadas do cursor anterior
(4) Ciclar através dos objetos da janela e mudar suas coordenadas, ajustando a diferença na posição do cursor.
(5) Chamando o ObjectSetInteger para mover o МТ-objeto do formulário da janela (lona) ao longo do gráfico pela distância dada.
Portanto, a implementação dentro da função é correta. A implementação através de Object Handlers, Object Parameters e Object Bindings parece estranha contra este pano de fundo. Mas, vamos cavar...
Sim, porque você não precisa separar estes manipuladores do objeto. A classe que retorna as coordenadas do cursor pode ser tornada estática - ela estará disponível para qualquer classe do programa, e a obtenção das coordenadas e a resposta a elas deve ser implementada em cada objeto. Mas somente o objeto principal do formulário deve chamar esses manipuladores. Então, para todos os outros objetos de formulário, é suficiente especificar novas coordenadas e redesenhar. Dentro do objeto forma, há uma lista de todos os seus objetos. O objeto forma definiu mudança de suas coordenadas - define novos valores para suas coordenadas, passa por sua lista de objetos e métodos de chamadas para definir coordenadas de cada objeto em sua lista. Ao mesmo tempo, cada objeto subseqüente faz a mesma coisa quando suas coordenadas mudam - ele olha através de sua lista de objetos e ordena que eles mudem suas coordenadas. Os objetos das listas estão dispostos na ordem em que são desenhados (seqüência Z). Em outras palavras, cada objeto tem seu próprio método de mudança de coordenadas, mas é implementado da mesma maneira - ele olha através da lista de todos os objetos "amigáveis" e chama o mesmo método para cada um deles. Assim, ao chamar este método uma vez para o objeto principal do formulário, iniciamos automaticamente uma mudança de coordenadas para todos os objetos do formulário. Quando a lista de objetos "amigáveis" do formulário foi processada, ele chama seu método de redesenho do gráfico, que é o mesmo para todos os objetos modificados.
...
Esta é a visão padrão OOP do mecanismo de movimentação de janelas. Vou lhe mostrar um diferente. Para fazer isso, limpe sua mente por um segundo e apenas siga meu pensamento.
Esse é o fim da história...
Olhamos para a matriz por fora e gaseamos! "Criamos um Sistema de Objetos!")
ZS. Note que tudo pode ser criado em uma matriz de matriz. E a matriz-matriz é o núcleo. E as entidades nela contidas - os verdadeiros objetos. E parâmetros, e eventos, e encadernações, e propriedades, e manipuladores. Há inúmeros sistemas que podem ser construídos no Kernel a partir dessas coisas básicas.
Uma continuação falsa...
11. De alguma forma, os parâmetros dos primogênitos decidiram seguir uma moda. Eles descobriram que existe uma feira de imóveis em algum lugar da matriz, e um certo espaço na novidade. Dizem que tem três propriedades. As "dimensões" são chamadas de "dimensões". Estas propriedades têm uma faixa supostamente infinita de valores, e como um bônus elas dão outro "tempo parâmetro". Os parâmetros chegaram à feira e tomaram as propriedades x,y,x_tamanho,y_tamanho. Eles dizem que querem fazer uma concha no espaço. E eles também ganharam cor. Eles voltaram e começaram a vestir as novas propriedades. Eles modelaram e modelaram alguns envelopes espaciais até se cansarem disso. Cresceram imensamente, depois desabaram... Depois puseram cores em si mesmos e relaxaram. Eles começaram a pensar no que fazer a seguir. E então eles olharam para a caixa de propriedade de tempo. Vamos ver o que é... Eles o abriram, prenderam-no a si mesmos, mas não calcularam os valores e em um momento ele se evaporou no vazio. Afinal, o tempo é um parâmetro com o qual se deve ter muito cuidado...
Uma continuação falsa...
11. De alguma forma, os parâmetros dos primogênitos decidiram seguir uma moda. Eles descobriram que existe uma feira de imóveis em algum lugar da matriz, e um certo espaço na novidade. Dizem que tem três propriedades. As "dimensões" são chamadas de "dimensões". Estas propriedades têm uma gama supostamente infinita de valores, e como um bônus elas dão outro "tempo parâmetro". Os parâmetros chegaram à feira e tomaram as propriedades x,y,x_tamanho,y_tamanho. Eles dizem que querem fazer uma concha no espaço. E eles ganharam cor. Eles voltaram e começaram a vestir as novas propriedades. Eles modelaram e modelaram alguns envelopes espaciais até se cansarem disso. Cresceram imensamente, depois desabaram... Depois puseram cores em si mesmos e relaxaram. Eles começaram a pensar no que fazer a seguir. E então eles olharam para a caixa de propriedade de tempo. Vamos ver o que é... Eles o abriram, prenderam-no a si mesmos, mas não calcularam os valores e em um momento ele se evaporou no vazio. Afinal de contas, o tempo é um parâmetro com o qual você tem que ter muito cuidado...
E os dez primeiros não foram sérios?
Eu, por exemplo, não consigo ler sem rir.
...
Toda essa "objetividade" é muito confusa, você não concorda? Você tem que ter cuidado com isso. Nikolai Semko estava certo sobre a proximidade de genialidade e esquizofrenia. É possível "ficar louco". Há algumas coisas que é melhor não entender. Algumas portas, devem estar sempre fechadas para nossa Consciência. Como disse um filme, - "o parasita mais perigoso é uma idéia". Uma vez no cérebro, é impossível tirá-lo de lá". A matriz de que eu estava falando é perigosa para a Mente. É fácil se perder nele e ficar perdido para sempre. Vamos ter cuidado))))