Рефакторинг класса в C++

                <?php if(isset([110] 

Во-первых, вам нужно проверить наличие текстового поля id, в противном случае вы получите неопределенный индекс: id. Вы можете попробовать это.

POST['id']) && [110]

Во-первых, вам нужно проверить наличие текстового поля id, в противном случае вы получите неопределенный индекс: id. Вы можете попробовать это.

POST['id'] == '1000'):?> <input type="text" value="<?php echo (isset([110]

Во-первых, вам нужно проверить наличие текстового поля id, в противном случае вы получите неопределенный индекс: id. Вы можете попробовать это.

GET['value'])) ? [110]

Во-первых, вам нужно проверить наличие текстового поля id, в противном случае вы получите неопределенный индекс: id. Вы можете попробовать это.

GET['value'] : ""; ?>" name="id"> <img src="images/topupcard3.jpg" width="400px" height="200px"> <?php endif;?>

Во-первых, вам нужно проверить наличие текстового поля id, в противном случае вы получите неопределенный индекс: id. Вы можете попробовать это.

5
задан Daniel Daranas 11 January 2012 в 17:03
поделиться

3 ответа

Если нет очень серьезное основание не изменить класс A, осуществить рефакторинг и сделать общую базу (или еще лучше, общий класс, который оба могут использовать, но не обязательно происходить из).

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

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

16
ответ дан 18 December 2019 в 06:23
поделиться

(1) Не копируйте общий код в обоих классах, если Вы или Ваш работодатель не готовы поддержать обе копии неограниченно долго.

(2) Рефакторинг по определению изменяет классы, которые Вы уже имеете. Осуществление рефакторинг Вас делает предложение, назван, "Извлекают SuperClass", сопровождаемый, "Тянут Метод" для каждой методики, которая характерна для производных классов. Это - прекрасный подход.

Править: Я помнил реальный драгоценный камень позади Рефакторинга: В причине это совершенно жидко и обратимо. Никогда нет "Права" существует только "Прямо на данный момент". Если Вы решаете позже, что использование наследования для этих классов не является хорошей объектной моделью затем, можно осуществить рефакторинг снова для использования состава (как великолепно предложил Josh).

8
ответ дан 18 December 2019 в 06:23
поделиться

Классы должны совместно использовать общий базовый класс, если Вы предназначаете классы, чтобы быть substitutable (отношения "ISA").

Вы могли бы рассмотреть состав. Ваш новый класс B мог быть классом обертки вокруг переменной члена парламента, не занимающего официального поста класса A типа. Класс B мог увеличить класс A с новыми методами или логикой, не изменяя класс A. Это удобно, если Вы не можете изменить класс A (например, это - программное обеспечение с закрытым исходным кодом, принадлежавшее другой команде, или Вы боитесь повредить совместимость с существующим кодом с помощью класса A).

Для хорошей схемы см. "Наследование замены с Делегацией" рефакторинг шаблона.

1
ответ дан 18 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: