Questões de Concurso Para analista de sistemas júnior - engenharia de software
Foram encontradas 439 questões
Resolva questões gratuitamente!
Junte-se a mais de 4 milhões de concurseiros!
CREATE TABLE MOTORISTA (
MATRICULA NUMBER(7,0) NOT NULL,
NOME VARCHAR2(50) NOT NULL,
CPF NUMBER(11,0) NOT NULL,
CNH VARCHAR2(15) NOT NULL,
CONSTRAINT MOTORISTA_PK PRIMARY KEY (MATRICULA),
CONSTRAINT MOTORISTA_UK1 UNIQUE (CPF),
CONSTRAINT MOTORISTA_UK2 UNIQUE (CNH))
CREATE TABLE LINHA (
NUMERO CHAR(5) NOT NULL,
ORIGEM VARCHAR2(50) NOT NULL,
DESTINO VARCHAR2(50) NOT NULL,
CONSTRAINT LINHA_PK PRIMARY KEY (NUMERO)
)
CREATE TABLE VIAGEM (
MAT_MOT NUMBER (7,0) NOT NULL,
NUM_LINHA CHAR(5) NOT NULL,
INICIO DATE NOT NULL,
FINAL DATE,
CONSTRAINT VIAGEM_PK PRIMARY KEY (MAT_MOT,NUM_LINHA,INICIO),
CONSTRAINT VIAGEM_FK1 FOREIGN KEY (MAT_MOT) REFERENCES MOTORISTA (MATRICULA),
CONSTRAINT VIAGEM_FK2 FOREIGN KEY (NUM_LINHA) REFERENCES LINHA (NUMERO))
package ServiceLayer;
public interface ServiceA {
int srvA1();
int srvA2();
int srvA3();
}
package ServiceLayer;
public interface ServiceB {
int srvB1();
int srvB2();
}
package ServiceLayer;
public class Services {
private Services() {
}
public static ServiceA serviceA() {
return new CL01();
}
public static ServiceB serviceB() {
return new CL01();
}
}
package ServiceLayer;
class CL01 implements ServiceA, ServiceB{
public int srvA1()
{ // código irrelevante }
public int srvA2()
{ // código irrelevante }
public int srvA3()
{ // código irrelevante }
public int srvB1()
{ // código irrelevante }
public int srvB2()
{ // código irrelevante }
}
O trecho de código a seguir mostra como os serviços disponíveis são executados.
{
ServiceA s1=Services.serviceA();
ServiceB s2=Services.serviceB();
s1.srvA1();
s2.srvB1();
// código irrelevante
}
Essa arquitetura usou variações de dois padrões de projeto conhecidos, que são:
Qual ferramenta é usada por essa abordagem para o registro informal de possíveis colaborações entre os objetos de uma aplicação?
A solução proposta é a seguinte:
1. Uma classe abstrata (DB) será responsável por instanciar um objeto correspondente ao tipo de banco de dados desejado. Isso será feito através do método estático getDB(), que irá retornar um objeto de uma de suas subclasses concretas, de acordo com o parâmetro (tipo) passado.
2. O objeto criado no passo anterior irá instanciar conexões e consultas correspondentes ao tipo de DB criado; isto é, caso um DB XML tenha sido instanciado, apenas consultas XML e conexões XML serão instanciadas; caso um DB SQL tenha sido instanciado, apenas consultas SQL e conexões SQL serão instanciadas.
O diagrama de classe a seguir ilustra a estrutura descrita acima.
Qual padrão de projeto foi utilizado na solução proposta?