Skip to content

Conversation

@mahonin-ms
Copy link

No description provided.

/**
* Горловина к топливному баку
*/
data class TankMouth(val type:Type, val tank:Tank, val car:Car){
Copy link
Collaborator

Choose a reason for hiding this comment

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

@mahonin-ms, давайте отвлечемся от программирования, вспомним реальные конструкции, и какая между ними связь...
В реальной жизни: бак установлен в автомобиль, он связан горловиной с внешним миром.
В вашем варианте: горловина, в которую установлены бак и машина

* @return сколько в баке после заправки
*/
fun addFuel(level: Int): Boolean {
if(car is Taz){
Copy link
Collaborator

Choose a reason for hiding this comment

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

@mahonin-ms
... если установленная машина - это таз - то ой.

Получилось не очень натурально

}
}

class FuelSystem {
Copy link
Collaborator

Choose a reason for hiding this comment

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

@mahonin-ms идея объединить бак и горловину единой внешней сущностью - это хорошее решение! Но ссылка к машине, опять же, кажется лишней. В реальной жизни топливную систему в сборе ставят в машину. Горловина торчит наружу - это и есть интерфейс для заправки

fun refuelCar(car: Car, litres: Int) {
println("Заправка авто: ${car.toString()} на ${litres.toString()} литров")
currentCar = car
if( currentCar is Taz){
Copy link
Collaborator

Choose a reason for hiding this comment

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

@mahonin-ms, получился костыль в заправке. Почему бы не сделать взрыв непосредственно в ТАЗу? Зачем другим компонентам знать "детали его внутренней реализации"?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants