Beruflich Dokumente
Kultur Dokumente
boolean isIsolated(Vertex<V> v)
MyVertex vertex = checkVertex(v);
if(hasEdges(v))
return false
return true
List<Vertex<V>> adjacentVerticex(Vertex<V> v)
List<Vertex<V>> adjacentVerticex(Vertex<V> v)
Vertex<V> getMaxDegreeVertex()
int sumOfActiveEdges()
Int count = 0;
for(Edge<E,V> edge: listEdges.values())
count += e.vertices().length
return count;
removeVertex(Vertex<V> v)
checkVertex(v);
V element = v.element();
Iterable<Edge<E, V>> adjacentEdges = adjacentEdges(v);
for (Edge<E, V> edge : adjacentEdges) {
edges.remove(edge.element());
}
vertices.remove(v.element());
return element;
Padroes
1. Utiliza-se o padrão Singleton quando se pretendemos ter uma classe
Final?
Sim, pois quando queremos ter uma classe final quer dizer que queremos
ter apenas uma instância da classe, para tal usa-se o padrão Singleton.
Tal como referido nos slides, para ser possível usar o foreach em java, a
coleção a percorrer tem que implementar a interface Iterable.
7. Considerando o código abaixo . Para cada um dos participantes do
padrão Command,
indique qual a classe/interface que lhe corresponde, preenchendo a
tabela abaixo.
Client TesteCommand
Command CommandLight
ConcreteCommand CommandOn CommandOff
Invoker Light
Reciever Button
A)
private Ponto mementop1,mementop2;
private Line mementoLine;
Public Memento(int p1, int p2, Line line){
mementop1 = p1;
mementop2 = p2;
mementoLine = new Line(line);
}
B)
REFACTORING
1.
A)
Replace conditional with polymorphism.
Como temos várias ações dependendo do tipo de um objeto, assim
conseguimos criar subclasses consoante a condição e agrupar o código.
B)
Extract Method
Tendo em conta que tínhamos dois fragmentos de código iguais, a solução
passa por o extrair para um novo método e substituir o código.
C)
Nenhuma das anteriores
D)
B. O refactoring influencia (e modifica) o comportamento externo de uma
classe.
Refactoring é a alteração de um programa de software, através da
melhoria da sua estrutura interna (desenho) sem alterar o seu
comportamento.
E)
C. Implementação de uma suite de testes.
O processo de refactoring recorre ao uso de testes unitários.
F)
C. Quando queremos separar a criação de um objeto da sua utilização.
O replace type code with strategy especifica que “You have a type code
that affects the behaviour of a class, but you
cannot use subclassing. Replace the type code with a state object.”
2.
A)
Duplicated Code 16 17 17 Empresa Código repetido
26 27 28 na mesma
classe
Data Clump 15 25 Empresa Métodos que
pertencem
noutra classe.