Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ru.geekbrains.converter;

import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
Expand All @@ -21,12 +22,18 @@ protected void onCreate(Bundle savedInstanceState) {
// обработка нажатия
public void onToFahrenheitClick(View view) {
// получить входное значение
float sourceValue = Float.parseFloat(sourceText.getText().toString());
// инстанцировать конвертер
Converter converter = new Converter(sourceValue);
// преобразовать, обратите внимание на параметр ConvertToFahrenheit
float destValue = converter.Convert(new ConvertToFahrenheit()).GetResult();
// записать результат в элемент
destText.setText(String.format("%.02f", destValue));
float sourceValue;
Converter converter;
try {
sourceValue = Float.parseFloat(sourceText.getText().toString());
// инстанцировать конвертер
converter = new Converter(sourceValue);
// преобразовать, обратите внимание на параметр ConvertToFahrenheit
float destValue = converter.Convert(new ConvertToFahrenheit()).GetResult();
// записать результат в элемент
destText.setText(String.format("%.02f", destValue));
} catch (NumberFormatException ex){
Snackbar.make(view, "Введите число!", Snackbar.LENGTH_SHORT).show();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package ru.geekbrains.converter;

public class ConvertToMetersPerSecond implements ConvertTo {
@Override
public float Do(float sourceValue) {
return (float) sourceValue * 1000 / 3600;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,11 @@ public void ConvertToMile_Do_UnitTest() throws Exception{
assertThat(actual, is(1.24274f));
}

@Test
public void ConvertToMetersPerSecond_Do_UnitTest() throws Exception{
ConvertTo convertTo = new ConvertToMetersPerSecond();
float actual = convertTo.Do(10);
assertThat(actual, is(2.777777777f));
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
class MeteoStore{
// сохранение данных в базу
boolean save(MeteoSensor meteoSensor){
System.out.format("Saving data from sensor [%d] at %s%n temperature - %f ; humidity - %f ; pressure - %f \n\r", meteoSensor.getId(), meteoSensor.getDateTime(), meteoSensor.getTemperature(), meteoSensor.getHumidity(), meteoSensor.getPressure());
return true;
}
class MeteoDB implements MeteoStore{
// сохранение данных в базу
boolean save(MeteoSensor meteoSensor){
System.out.format("Saving data from sensor [%d] at %s%n temperature - %f ; humidity - %f ; pressure - %f \n\r", meteoSensor.getId(), meteoSensor.getDateTime(), meteoSensor.getTemperature(), meteoSensor.getHumidity(), meteoSensor.getPressure());
return true;
}
}
24 changes: 24 additions & 0 deletions Lesson2/HomeWork/Task1/MeteoSensorAdapter
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
class MeteoSensorAdapter implements MeteoSensor{

SensorTemperature sensor;

public MeteoSensorAdapter(SensorTemperature sensor){
this.sensor = sensor;
}

public int getId(){
return sensor.identifier()+500;
}
public Float getTemperature(){
return (float) sensor.temperature();
}
public Float getHumidity(){
return null;
}
public Float getPressure(){
return null;
}
public LocalDateTime getDateTime(){
return LocalDateTime.of(sensor.year(), 1, 1, 0, 0, 0).plusDays(sensor.day()-1).plusSeconds(sensor.second());
}
}
4 changes: 3 additions & 1 deletion Lesson2/HomeWork/Task1/MeteoStation.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
public class MeteoStation{
public static void main(String[] args){
MeteoStore meteoDb = new MeteoStore();
MeteoStore meteoDb = new MeteoDB;

MeteoSensor ms200_1 = new MS200(1);
meteoDb.save(ms200_1);

meteoDb.save(new MeteoSensorAdapter(new ST500Info.getData()));

// Здесь надо вызвать метод getData у класса ST500Info. Полученные данные отправить в метод save объекта meteoDb
}
Expand Down
3 changes: 3 additions & 0 deletions Lesson2/HomeWork/Task1/MeteoStore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
interface MeteoStore{
boolean save(MeteoSensor meteoSensor);
}
8 changes: 8 additions & 0 deletions Lesson2/HomeWork/Task2/DisplayReport
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
class DisplayReport implements SendReport{
public void output(List<ReportItem> items){
System.out.println("Output on display");
for(ReportItem item : items){
System.out.format("printer %s - %f \n\r", item.getDescription(), item.getAmount());
}
}
}
3 changes: 3 additions & 0 deletions Lesson2/HomeWork/Task2/ISendReport.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
interface ISendReport{
public void output(List<ReportItem> items);
}
2 changes: 1 addition & 1 deletion Lesson2/HomeWork/Task2/PrintReport.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import java.util.*;
class PrintReport{
class PrintReport implements SendReport{
public void output(List<ReportItem> items){
System.out.println("Output to printer");
for(ReportItem item : items){
Expand Down
4 changes: 3 additions & 1 deletion Lesson2/HomeWork/Task2/Programm.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
class Programm{
public static void main(String[] args){
Report report = new Report();
Report report = new Report(new DisplayReport);
report.calculate();
report.output();
report.setSendReport(new PrintReport());

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше сделать наоборот, передать report в PrintReport. Так код будет проще.

Suggested change
report.setSendReport(new PrintReport());
report.setSendReport(new PrintReport());
SendOutput reportOutput = new PrintReport();
reportOutput.output(report)

report.output();
}
}
14 changes: 11 additions & 3 deletions Lesson2/HomeWork/Task2/Report.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
import java.util.*;
class Report{
private List<ReportItem> items; // Отчетные данные
SendOutput sendOutput;

Report(SendOutput sendOutput){
this.sendOutput = sendOutput;
}

// расчет отчетных данных
public void calculate(){
items = new ArrayList<ReportItem>();
items.add(new ReportItem("First", (float)5));
items.add(new ReportItem("Second", (float)6));
}


public void setSendOutput(SendOutput sendOutput) {
this.sendOutput = sendOutput;
}

public void output(){
PrintReport reportPrint = new PrintReport();
reportPrint.output(items);
sendOutput.output(items);
}
}