Possuo o seguinte caso: Tenho um sistema que possui tarefas. Essas tarefas podem ter várias sub-tarefas. Além disso, cada tarefa pode ter um vinculo paralelo, que permite que ela seja executada ao mesmo tempo que outras tarefas, ou sequencial, que obriga que a tarefa anterior seja concluida antes do inicio.
Pensei em dois modelos:
a) Classe Task, que contem uma conjunto de objetos dela mesmo, para representar as sub-tarefas. Parece interessante, mas não pensei em uma boa forma de fazer o controle de tarefas sequenciais e paralelas.
b) Interface Task, que implementa SequentialTask e ParallelTask. Isso ajudaria a montar o esquema de paralelo e sequencial, pois poderia passar a SequentialTask qual tarefa vem antes dela e lançar execção ao tentar fechar a tarefa atual sem ter fechado a precedente. Porém, não vejo com muita clareza como ficaria a questão das sub-tarefas.
Bom, acho que ambas as ideias tem problemas. Alguém teria uma terceira opinião?