Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

common interfaces #10

Merged
merged 1 commit into from
Mar 12, 2019
Merged

common interfaces #10

merged 1 commit into from
Mar 12, 2019

Conversation

zinoviy23
Copy link
Contributor

Давайте обсуждать. Я решил добавить подвид Actor, MoveableActor, который умеет передвигаться, раз у нас деревья тоже акторы. Ещё я добавил некторые интерфейсы для карты и животных

@zinoviy23 zinoviy23 force-pushed the common-interfaces branch 2 times, most recently from 9b975c5 to 560e708 Compare March 11, 2019 14:40
@SerVB SerVB added this to the Этап 1 milestone Mar 12, 2019
@zinoviy23 zinoviy23 changed the title WIP common interfaces common interfaces Mar 12, 2019

// Extends animal because if it is can breed, so it is already an animal
interface Breedable<TSpecies : Animal> : Animal {
fun breedWith(other: TSpecies?): TSpecies
Copy link
Member

Choose a reason for hiding this comment

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

Почему nullable, я все понять не могу...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ну червяки какие-нибудь

Copy link
Member

Choose a reason for hiding this comment

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

Пусть тогда будет еще интерфейс, где такой метод без параметров – гермафродит

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Стойте, это же наверно не нужный интерфейс вообще? Типа интеракт это делает, пусть животное само решает, что делать с другим животным

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Имхо, это бесполезный интерфейс, так как получится, что кто-то из вне его вызывает

Copy link
Member

Choose a reason for hiding this comment

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

Да, это внутреннее поведение...

Copy link
Contributor

Choose a reason for hiding this comment

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

Ну раз ты хочешь скрещивать кого угодно с кем угодно, то да, не нужный

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Тут мне кажется лучше уже описать абстрактный класс, который будет требовать определить базовые для животных(еда, сон, размножение, смерть ...) методы, которые не доступны снаружи(protected), также который будет реализовывать interactWith для всех животных. Вроде в природе он одинаковый.

Либо есть еще вариант именно для размножения, сделать какой-нибудь дженерик класс Breeder, и животное внутри его себя будет через композицию хранить и во внутренней логике вызывать.

@@ -0,0 +1,6 @@
package io.github.badgersOfKotlinForest.kotlinForest.animals

enum class EatableType {
Copy link
Member

Choose a reason for hiding this comment

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

Предлагаю положить в один файл с Eatable

Copy link
Contributor

@Xetd71 Xetd71 left a comment

Choose a reason for hiding this comment

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

Вроде норм

@zinoviy23
Copy link
Contributor Author

Если животные абстрактные классы, то наверное здесь всё?

Copy link
Member

@SerVB SerVB left a comment

Choose a reason for hiding this comment

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

Ок

@zinoviy23 zinoviy23 merged commit 32bc882 into master Mar 12, 2019
@Xetd71 Xetd71 deleted the common-interfaces branch March 15, 2019 12:54
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.

3 participants