Булевские параметры методов
От: SV.  
Дата: 30.12.11 10:23
Оценка:
Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?
Re: Булевские параметры методов
От: 0x7be СССР  
Дата: 30.12.11 10:48
Оценка: +2
Здравствуйте, SV., Вы писали:

SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?

Таких ситуаций нет, хотя бы потому, что любую ситуацию, где используется булева переменная, модно переписать на использование какого-нибудь enum`а или int`a. Предлагаю изменить постановку вопроса на: "когда применение булевого параметра было бы оптимальным".
Re: Булевские параметры методов
От: Пацак Россия  
Дата: 30.12.11 11:12
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?


element.setEnabled(condition)


Вариант element.enable()+element.disable() неоптимален, т.к. требудет лишней обвязки if'ами.
Ку...
Re[2]: Булевские параметры методов
От: hardcase Пират http://nemerle.org
Дата: 30.12.11 11:14
Оценка:
Здравствуйте, Пацак, Вы писали:

П>Здравствуйте, SV., Вы писали:


SV.>>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?


П>
П>element.setEnabled(condition)
П>


Это костыль в языках, где нет свойств.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Булевские параметры методов
От: hardcase Пират http://nemerle.org
Дата: 30.12.11 11:15
Оценка: 1 (1)
Здравствуйте, 0x7be, Вы писали:

0>Здравствуйте, SV., Вы писали:


0>Таких ситуаций нет, хотя бы потому, что любую ситуацию, где используется булева переменная, модно переписать на использование какого-нибудь enum`а или int`a.


Концептуально bool и есть перечисление из двух элементов: true и false. Так что вопрос автора не имеет смысла.
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Булевские параметры методов
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 30.12.11 11:15
Оценка: +1 -1
Здравствуйте, SV., Вы писали:

SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?


public Font SetFontItalic(Font font, bool isItalic)

Пойдёт?
Вселенная бесконечна как вширь, так и вглубь.
Re: Булевские параметры методов
От: Anpek  
Дата: 30.12.11 11:42
Оценка: 6 (1)
Здравствуйте, SV., Вы писали:


void  InitLibrary(bool enable_logging)


Подойдет?
Re[3]: Булевские параметры методов
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 30.12.11 12:03
Оценка: +1
Здравствуйте, hardcase, Вы писали:

П>>
П>>element.setEnabled(condition)
П>>


H>Это костыль в языках, где нет свойств.


А вот и нифига. В том же C# обычно на свойства вешают что-то с относительно тривиальными методами-аксессорами. Если внутри set/get сложная логика, которая может подолгу крутиться и что-то тяжёлое поднимать, то рекомендуют так и писать методы GetSomething/SetSomething
Re: Булевские параметры методов
От: batu Украина  
Дата: 30.12.11 12:47
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?

Совсем недавно создал такой метод. Надо было блокировать и разблокировать часть элементов формы в зависимости от развития ситуации. Свойство нафиг не нужно, потому как состояние меня не интересовало. Читать не надо было. А метод очень даже подошел.
Re[2]: Булевские параметры методов
От: ArhAngelVezel Россия  
Дата: 30.12.11 13:04
Оценка:
Здравствуйте, Anpek, Вы писали:

A>Здравствуйте, SV., Вы писали:



A>
A>void  InitLibrary(bool enable_logging)
A>


A>Подойдет?


Лучше писать:
void  InitLibrary(ILogger logger)
Re[2]: Булевские параметры методов
От: ArhAngelVezel Россия  
Дата: 30.12.11 13:05
Оценка: -1
Здравствуйте, Real 3L0, Вы писали:

R3>
R3>public Font SetFontItalic(Font font, bool isItalic)
R3>

R3>Пойдёт?

object.font.style.italic = true;
Re[3]: Булевские параметры методов
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 30.12.11 13:07
Оценка:
Здравствуйте, ArhAngelVezel, Вы писали:

AAV>object.font.style.italic = true;


italic имеет только геттер.
Вселенная бесконечна как вширь, так и вглубь.
Re[4]: Булевские параметры методов
От: hardcase Пират http://nemerle.org
Дата: 30.12.11 13:08
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>А вот и нифига. В том же C# обычно на свойства вешают что-то с относительно тривиальными методами-аксессорами. Если внутри set/get сложная логика, которая может подолгу крутиться и что-то тяжёлое поднимать, то рекомендуют так и писать методы GetSomething/SetSomething


В таком случае делается класс-конфигурация параметров этого долгого и мучительного процесса. А у класса того исключительно примитивные свойства и будут (см ProcessStartInfo).
/* иЗвиНите зА неРовнЫй поЧерК */
Re[3]: Булевские параметры методов
От: batu Украина  
Дата: 30.12.11 13:10
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, 0x7be, Вы писали:


0>>Здравствуйте, SV., Вы писали:


0>>Таких ситуаций нет, хотя бы потому, что любую ситуацию, где используется булева переменная, модно переписать на использование какого-нибудь enum`а или int`a.


H>Концептуально bool и есть перечисление из двух элементов: true и false. Так что вопрос автора не имеет смысла.

Это как посмотреть. Может оно и так если в языке L речь идет о каком-то объекте X, который равняется True. (Т.е. X=True). А вот когда мы о самом этом равенстве (X=True) как о высказывании говорим что оно True или False так мы переходим на другой семантический уровень рассуждая о самом высказывании. Здесь уже True или False объекты метаязыка манипулирующего с конструкциями языка L.
Может заумно.. но это ж ветка философия
ч
Re[4]: Булевские параметры методов
От: hardcase Пират http://nemerle.org
Дата: 30.12.11 13:18
Оценка:
Здравствуйте, batu, Вы писали:

B>Здесь уже True или False объекты метаязыка манипулирующего с конструкциями языка L.


И тем не менее этих объектов две штуки и над ними можно определить алгебру (например булеву).
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Булевские параметры методов
От: C0s Россия  
Дата: 30.12.11 15:47
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?


(необходим — слишком сильно),

например, в таком случае он нужен:
метод выборки данных по фильтру, состоящему из нескольких его атрибутов, что-то типа findObjectsByCriteria(String param1, Integer param2, ... Boolean paramN, ..., Boolean paramM),
где paramN, paramM соответствуют каким-то булевским атрибутам объектов, среди которых производится поиск

необходимость, как нетрудно догадаться, проистекает из того, что изначально объекты согласно анализу могут иметь среди своих атрибутов либо простые флаговые (типа on/off, active/inactive, started/stopped), либо сочинённые (когда атрибут типа какого-то enum, но у каждого элемента enum, всё равно, есть свой набор булевских субпризнаков, по каждому из которых в программе обработки может появиться ветвление)
Re[5]: Булевские параметры методов
От: batu Украина  
Дата: 30.12.11 16:18
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, batu, Вы писали:


B>>Здесь уже True или False объекты метаязыка манипулирующего с конструкциями языка L.


H>И тем не менее этих объектов две штуки и над ними можно определить алгебру (например булеву).

Можно, можно..
Re: Булевские параметры методов
От: ononim  
Дата: 30.12.11 18:16
Оценка:
SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?
struct IBoolStorage
{
void Save(bool value) = 0;
bool Load() = 0;
}

Вопрос о необходимости булкохранилища считать офтопиком
Как много веселых ребят, и все делают велосипед...
Re[2]: Булевские параметры методов
От: alexeiz  
Дата: 30.12.11 18:55
Оценка:
Здравствуйте, ononim, Вы писали:

O>
O>struct IBoolStorage
O>{
O>void Save(bool value) = 0;
O>bool Load() = 0;
  half_bool CutHalf() = 0;
  bool_with_caviar AddCaviar(int how_much) = 0;
O>}
O>
Re: Булевские параметры методов
От: gegMOPO4  
Дата: 30.12.11 19:49
Оценка:
Здравствуйте, SV., Вы писали:
SV.>Можете ли вы привести пример, когда булевский параметр метода вам действительно необходим?

class Properties
{
    ...
    void setBoolean( string name, bool value );
    bool getBoolean( string name, bool defaultValue );
    ...
};
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.