[APIшность] Допустим я создал.

5,149
49
899
Допустим я создал какую то модель гриба(базовую) но текстуру ему не указал. Как мне это вынести в API, чтобы другой моддер мог взять, расширить от моего гриба, натянуть свою текстуру и сделать новый гриб?

Короче, как ванильный BasicBlock. только мой BasicMushroom?
 
Пжлст, пмгт :|
 
Так сделай класс, и все главные переменные туда сунь, ну и возможность их хватать/менять и т.д.
А в остальных классов используй свой же апи
 
RaDiC написал(а):
Так сделай класс, и все главные переменные туда сунь, ну и возможность их хватать/менять и т.д.
А в остальных классов используй свой же апи

и жэто все что нужно для АПи?
 
Maxik001 написал(а):
RaDiC написал(а):
Так сделай класс, и все главные переменные туда сунь, ну и возможность их хватать/менять и т.д.
А в остальных классов используй свой же апи

и жэто все что нужно для АПи?

Загляни например в тфк
 
Api - это класс с публичными методами, полями, в широком смысле
 
ну с чего то надо начинать API делать... Не все же сразу)
 
по мне так по сути поля нельзя делать публичными вообще, для всего нужно иметь аксессоры и мутаторы, иначе у тебя будет говнокод, обращение к полям только через аксессоры, изменение состояние через мутаторы ( проще говоря сеттеры и геттеры ) , малоли что кто-то хочет поменять, для того и есть API, что считаешь нужным вынести в публичные методы то и выноси
 
bestxp, все правильно говорит. Геттеры с сеттерами это хороший стиль написания кода. Хотя, лично я ими обычно пренебрегаю.
 
bestxp написал(а):
по мне так по сути поля нельзя делать публичными вообще, для всего нужно иметь аксессоры и мутаторы, иначе у тебя будет говнокод, обращение к полям только через аксессоры, изменение состояние через мутаторы ( проще говоря сеттеры и геттеры ) , малоли что кто-то хочет поменять, для того и есть API, что считаешь нужным вынести в публичные методы то и выноси

Я код не скрываю.
 
Dahaka написал(а):
bestxp, все правильно говорит. Геттеры с сеттерами это хороший стиль написания кода. Хотя, лично я ими обычно пренебрегаю.
Потому что кода много получается?
 
Maxik001 написал(а):
bestxp написал(а):
по мне так по сути поля нельзя делать публичными вообще, для всего нужно иметь аксессоры и мутаторы, иначе у тебя будет говнокод, обращение к полям только через аксессоры, изменение состояние через мутаторы ( проще говоря сеттеры и геттеры ) , малоли что кто-то хочет поменять, для того и есть API, что считаешь нужным вынести в публичные методы то и выноси

Я код не скрываю.

дело не в том что ты код скрываешь или нет, дело в том что есть допустимые ограничения на изменения чего-то, например у тебя есть свойство, по определению не больше 10000 и не меньше 1000, ты что будешь каждый раз делать проверку? А нафига столько говнокода если проверку можно сделать только 1 раз когда свойство задают через сеттер и тд, множество лишних проверок однотипных не делают код удобнее и красивее, правильно и хорошее внешнее апи, это не все открыто, а все сделанное так что бы не было нужды лезть в исходник твоего мода и разбираться что стоит трогать, а что не стоит, и не искать по коду допустимые значения, по сути считай что все кто будет использовать твой код это тупые обезъяны и тебе нужно защититься от нападок в свою сторону из-за того что потом тупая обезьяна будет хаить что он изменил переменную которую ты решил не стоит трогать и тд
 
Если кто-то "тупая обезьяна", то это проблема его, а не автора кода. За исключением случая, когда эта обезьяна работает в тиме с тобой и тебе тоже аукнется от его кода.

"А нафига столько говнокода если проверку можно сделать только 1 раз когда свойство задают через сеттер и тд,"
Если бы это была встроенная функция языка, то я бы с тобой не спорил, что это полезно всегда и везде.
 
Ты зря споришь. Он все правильно написал.

hohserg написал(а):
Если кто-то "тупая обезьяна", то это проблема его, а не автора кода. За исключением случая, когда эта обезьяна работает в тиме с тобой и тебе тоже аукнется от его кода.
Либо ты не понял метафоры, либо ты забыл зачем нужна инкапсуляция.

hohserg написал(а):
Если бы это была встроенная функция языка, то я бы с тобой не спорил, что это полезно всегда и везде.
Что ты имеешь ввиду под встроенными функциями языка?
Чем отличаются стандартные классы от любого другого класса? Ничем. Стандартные классы тоже кто-то написал.
Да и не думаю, что делать вот так будет красиво.
Код:
if (a > 0) {
    if (a > 0) {
        if (a > 0) {
            if (a > 0) {
                b.set(a);
            }
        }
    }
}
А вот сделать эту проверку только в сеттере - очень даже не плохо. Главный смысл тут в том, чтобы занести туда какие-то действия, которые всегда должны выполнятся при изменении значения, после чего про них можно совсем забыть.
 
"Что ты имеешь ввиду под встроенными функциями языка?"
https://haxe.org/manual/class-field-property.html

"if(){
if(){..."
Это ты к чему?
 
hohserg написал(а):
Если кто-то "тупая обезьяна", то это проблема его, а не автора кода. За исключением случая, когда эта обезьяна работает в тиме с тобой и тебе тоже аукнется от его кода.

"А нафига столько говнокода если проверку можно сделать только 1 раз когда свойство задают через сеттер и тд,"
Если бы это была встроенная функция языка, то я бы с тобой не спорил, что это полезно всегда и везде.

тогда прежде чем программировать и давать советы изучи и начни применять инкапсуляцию, а так же познакомься с такими вещами как SOLID, GRASP, DRY и KISS как основные подходы к программированию

выставлять наружу все что есть это дурной тон и дискредитирует автора кода как программиста и показывает на отвратительное качество мода, даже если он 1000 раз работает верно, расширяемость и изменение поведения можно достигнуть добавив событийную модель на некоторые действия, помимо еще и API к некоторым методам

и да я тут не спорю =) не о чем тут спорить =) я утверждаю
 
Назад
Сверху