Programação orientada a objetos
Por: pacholla10157 • 24/11/2015 • Projeto de pesquisa • 8.093 Palavras (33 Páginas) • 276 Visualizações
Universidade Anhanguera-Uniderp - Unidade Vila Mariana
Marcel dos Santos Gubany – R.A. 7117508501
Marcus Yoshihiro Takano – RA: 6574300998
Plínio Balduino – R.A. 6950459640
Roberta Vieira Justino Balduino – R.A. 6950459481
ATPS – PROGRAMAÇÃO ORIENTADA A OBJETOS
Desenvolvimento de um sistema de hospedagem em Java
São Paulo/SP
09/2014
Índice
1 Apresentação 4
1.1 Orientação a objetos 4
1.2 Princípios SOLID 4
1.3 Ferramentas 5
1.3.1 Java 5
1.3.2 Maven 5
1.3.3 Eclipse 6
2 Relatório 1 7
2.1 Descrição 7
2.2 Código fonte 7
2.2.1 App.java 7
2.2.2 Booking.java 8
2.2.3 DefaultPeriodCalculator.java 9
2.2.4 ReceiptPrinter 10
2.2.5 KeyboardReader.java 11
2.2.6 DefaultPeriodCalculatorTest 12
2.2.7 ReceiptPrinterTest 12
3 Relatório 2 14
3.1 Descrição 14
3.2 Código fonte 14
3.2.1 App.java 14
3.2.2 Booking.java 16
3.2.3 ReceiptPrinter 18
3.2.4 Room.java 18
3.2.5 RoomList.java 19
3.2.6 KeyboardReader.java 20
4 Relatório 3 22
4.1 Descrição 22
4.2 Código fonte 22
4.2.1 Room.java 22
4.2.2 StandardRoom.java 22
4.2.3 Cottage.java 23
4.2.4 RoomList.java 23
4.2.5 RoomType.java 25
5.2.6 Booking.java 25
4.2.7 App.java 27
5 Relatório 4 30
5.1 Descrição 30
5.2 Código fonte 30
5.2.1 App.java 30
5.2.2 RoomType.java 32
5.2.3 RoomList.java 33
5.2.4 FancyRoom.java 34
1 Apresentação
O objetivo desta atividade é apresentar uma aplicação escrita na linguagem Java que sirva para controlar as hospedagens de quartos da localidade turística de Maraú, situada no Estado da Bahia.
A aplicação funciona através do console, mas pode ser facilmente estendida para trabalhar através de uma interface web ou mesmo uma interface gráfica para desktop independente de sistema operacional.
Foram utilizados os princípios SOLID, disseminados por Robert “Uncle Bob” Martin, autor do obrigatório livro “Clean Code”, onde são listadas as boas práticas no uso de programação orientada a objetos.
Foram utilizadas as versões 1.8.0 do Java e 3.2.1 do Maven. O código não é compatível com versões anteriores do Java, tendo em vista o uso da nova API de datas para o cálculo de diárias.
1.1 Orientação a objetos
A Programação Orientada a Objetos é uma das mais populares formas de se abordar problemas computacionais e foi implementada pela primeira vez como a linguagem Simula, em 1967.
O paradigma da orientação a objetos estabelece que um problema pode ser resolvido fazendo uso de objetos especializados que trabalham em conjunto para chegar a uma solução.
Dentro do contexto do Java, um objeto é a instância de uma classe, que por sua vez é uma abstração de algo existente no mundo real.
1.2 Princípios SOLID
SOLID é um acrônimo em inglês para os cinco princípios básicos da orientação a objetos descritos por Robert “Uncle Bob” Martin.
São eles:
S – Single Responsability Principle – Uma classe deve ter uma e apenas uma responsabilidade, ou seja, apenas uma motivação para ser modificada durante a evolução do sistema.
O – Open/Closed Principle – Objetos e classes devem ser abertos para extensão, mas fechados para modificação, ou seja, através de injeção de dependências ou uso consciente de herança, o comportamento de um objeto ou classe pode ser aprimorado, sem que seu código fonte original seja alterado.
L – Princípio de Liskov – Objetos podem ser substituídos por instâncias de seus subtipos sem que isso quebre a aplicação. Esse princípio indica que podemos utilizar uma classe Cachorro onde é esperado Animal, sabendo eu um Cachorro é um Animal, sem que isso invalide a aplicação
I – Interface Segregation Principle – Classes e objetos devem ter poucos comportamentos. Classes com muitos comportamentos acabam sendo difíceis de dar manutenção e passam a ter contato com todo o sistema.
D – Dependency Inversion Principle – Devemos depender de abstrações, e não de implementações específicas, já que as primeiras mudam menos e podem ser aplicadas em diferentes casos, aumentando o reuso de código.
1.3 Ferramentas
1.3.1 Java
Java é uma linguagem criada pela Sun, atualmente propriedade da Oracle, que se propôs a ser substituta do C++, além de ser multiplataforma.
Apesar de ter herdado vários dos problemas de design do C++, é muito utilizada em ambientes corporativos e para o ensino de Orientação a Objetos.
Para esta atividade está sendo utilizada a versão 1.8.0 do Java, conhecida como Java 8.
1.3.2 Maven
Maven é um gerenciador de dependências e automatizador de tarefas criado para facilitar o desenvolvimento de aplicações em Java.
...