2016-03-23 6 views
0

Я читаю код в полном объеме и задал вопрос «Передача параметров оптимизации». Автор говорит, что если вы передаете параметр из нескольких подпрограмм, это может указывать на необходимость подвергать эти процедуры классу, который использует этот параметр как данные класса.Упорядочивание параметров Передача

Означает ли это, что если у меня есть несколько отдельных классов, которые используют одни и те же данные, я должен создать один новый класс, который использует эти данные, а затем наследовать, чтобы создавать новые классы?

Или

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

Спасибо

+0

Не все должны делать заказ, поэтому было бы хорошо, если бы вы могли включить точную цитату в вопрос. – user463035818

+0

В тексте, на который вы ссылаетесь, есть «возможность», и это не означает, что вы * должны * что-либо делать, в частности, за исключением собственных собственных суждений, чтобы определить, может ли ваш код извлечь выгоду из реструктуризации. Применение этой идеи * может также привести к худшему беспорядку, чем вы начали. – molbdnilo

ответ

0

Последний. Похоже, что они говорят о таком случае, как это:

void function_1(std::string& my_data); 
void function_2(std::string& my_data); 

void main() { 
    std::string my_data = "SomeString"; 
    function_1(my_data); 
    function_2(my_data); 
} 

Что может быть изменено на:

class MyClass { 
    std::string my_data; 
pulbic: 
    MyClass(const std::string& str) : my_data(str) {} 
    void function_1(); 
    void function_2(); 
} 

void main() { 
    MyClass obj("SomeString"); 
    obj.function_1(); 
    obj.function_2(); 
} 

Где function_1 и function_2 использовать my_data поле, вместо того, чтобы быть пропущена строка каждый раз.

+0

Значит, речь идет о сохранении части данных как частного, так и внутри класса, а не передачи его между классами. Благодарим вас за пример кода. – Athomas1

+0

Ну, это был простой пример, поэтому улучшение читаемости не так уж и велико. Но если у нас есть, скажем, 20 переменных, которые мы должны передать каждой функции, намного проще передать их только один раз конструктору. Это главный момент, по которому они, похоже, идут. Однако инкапсуляция хороша и по другим причинам. –