2015-03-04 22 views
9

mam:Co to jest połączenie 2 klas w 1 klasę, gdzie jedna klasa jest podklasą drugiej klasy nazywanej?

  • abstrakcyjna klasa A
  • abstrakcyjne klasy B, który rozszerza
  • żadnych innych klas, które rozciąga się poza B
  • inna klasa (-y), które rozciągają B

Aby zmniejszyć liczbę klas, chcę, aby A i B zostały połączone w jedną klasę, i niech inne klasy rozciągną się od nowej klasy scalonej.

Jaka jest nazwa tego refaktoryzacji?

P.S. W mojej implementacji jest w Javie, czy to może być refaktoryzacji automatycznie w IntelliJ?

+0

Dlaczego chcesz tego? Masz na myśli, że nigdy nie będzie innej klasy, która mogłaby przedłużyć A, która powinna robić rzeczy inaczej niż B? Po pierwsze, pamiętaj, dlaczego najpierw stworzyłeś dwie klasy, a potem zacznij się zastanawiać, czy to dobry pomysł, czy nie. – Stultuske

+0

@Stultuske Tak Rozumiem, co masz na myśli. Obecnie zajmuję się czyszczeniem starego kodu napisanego przez przestarzałe osoby, a teraz jestem całkiem pewien, że A nigdy nie zostanie przedłużony z wyjątkiem B. – yuku

+0

Jaka jest nazwa tego refaktoryzacji? Taka jest jego nazwa. – JamesB

Odpowiedz

7

IntelliJ Inline Superclass wykonuje połączenie nadklasy z podklasą.

Inline Superclass

+0

Dzięki! Nie sądziłem, że będzie to nazywane "inline"! – yuku

3

Będziesz wpisywać klasy A i Intellij obsługuje to. Kliknij prawym przyciskiem myszy nazwę klasy i wybierz "refactor" z wyskakującego okienka i wybierz opcję klasy.