Pergunta

Em seu livro Extreme Programming Aplicada , Ken Auer casualmente menciona um padrão Enabler. Kent Beck também menciona-lo (pelo menos em um e-mail datado de 08 de novembro de 2004), mas eu não tenho sido capaz de encontrar todos os detalhes nos locais habituais (Google, o Wiki em c2.com, etc.)

Onde posso saber mais?

Foi útil?

Solução

O padrão Enabler é realmente apenas uma variação de um padrão Observer. Você configura observadores em partes interessantes de um sistema, criando condições. Enablers pode, então, observar as condições e ativar / desativar os widgets.

por exemplo. quando você carrega uma janela, você cria condições que o material relógio como se uma caixa lista ou de combinação (ou um modelo de baixo da lista ou caixa de combinação) tem algo selecionados. Você pode chamá-lo de algo como "somethingSelectedCondition". Você, então, ligar enablers para widgets que estão ligados a uma ou mais condições (que você pode e / ou em conjunto ... embora normalmente você só querem e eles juntos na prática).

Normalmente, eu implementá-las por ter uma fábrica Widget de tal forma que um dos parâmetros que você passa em uma variedade de condições nomeados que, quando anded juntos, ativar / desativar um widget. Por exemplo.

widgetFactory.createButton (String BUTTONLABEL, String methodActionName, String [] conditionNames)

Os conditionNames vai olhar para cima Condições que estão disponíveis em um algum tipo de HashMap, creat um CompositeCondition (que ANDs todos os valores booleanos observados das condições) e cria um Enabler que escutas ao CompositeCondition e diz ao criado widget para ativar / desativar com base na condição subjacente.

Parece um pouco complicado, mas uma vez que você criar a infra-estrutura subjacente, um par de linhas de fio código para cima suas condições, e, em seguida, a interface do usuário é sempre em sincronia com as condições.

Eu não acho que eu nunca oficialmente escreveu-se o padrão Enabler, ou eu apenas apontar-lhe uma URL.

HTH,

Ken

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top