https://github.com/iluwatar/java-design-patterns/issues/1016 - decrease number of checkstyle errors in adapter pattern (#1033)
This commit is contained in:
parent
1cb1bdcb57
commit
6aeafcf2aa
@ -24,37 +24,44 @@
|
|||||||
package com.iluwatar.adapter;
|
package com.iluwatar.adapter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An adapter helps two incompatible interfaces to work together. This is the real world definition
|
* An adapter helps two incompatible interfaces to work together. This is the
|
||||||
* for an adapter. Interfaces may be incompatible but the inner functionality should suit the need.
|
* real world definition for an adapter. Interfaces may be incompatible but
|
||||||
* The Adapter design pattern allows otherwise incompatible classes to work together by converting
|
* the inner functionality should suit the need. The Adapter design pattern
|
||||||
* the interface of one class into an interface expected by the clients.
|
* allows otherwise incompatible classes to work together by converting the
|
||||||
|
* interface of one class into an interface expected by the clients.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* There are two variations of the Adapter pattern: The class adapter implements the adaptee's
|
* There are two variations of the Adapter pattern: The class adapter
|
||||||
* interface whereas the object adapter uses composition to contain the adaptee in the adapter
|
* implements the adaptee's interface whereas the object adapter uses
|
||||||
* object. This example uses the object adapter approach.
|
* composition to contain the adaptee in the adapter object. This example uses
|
||||||
|
* the object adapter approach.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* The Adapter ({@link FishingBoatAdapter}) converts the interface of the adaptee class (
|
* The Adapter ({@link FishingBoatAdapter}) converts the interface of the
|
||||||
* {@link FishingBoat}) into a suitable one expected by the client ( {@link RowingBoat} ).
|
* adaptee class ({@link FishingBoat}) into a suitable one expected by the
|
||||||
|
* client ({@link RowingBoat}).
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* The story of this implementation is this. <br>
|
* The story of this implementation is this. <br>
|
||||||
* Pirates are coming! we need a {@link RowingBoat} to flee! We have a {@link FishingBoat} and our
|
* Pirates are coming! we need a {@link RowingBoat} to flee! We have a
|
||||||
* captain. We have no time to make up a new ship! we need to reuse this {@link FishingBoat}. The
|
* {@link FishingBoat} and our captain. We have no time to make up a new ship!
|
||||||
* captain needs a rowing boat which he can operate. The spec is in {@link RowingBoat}. We will
|
* we need to reuse this {@link FishingBoat}. The captain needs a rowing boat
|
||||||
* use the Adapter pattern to reuse {@link FishingBoat}.
|
* which he can operate. The spec is in {@link RowingBoat}. We will use the
|
||||||
|
* Adapter pattern to reuse {@link FishingBoat}.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class App {
|
public final class App {
|
||||||
|
|
||||||
|
private App() { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Program entry point.
|
* Program entry point.
|
||||||
*
|
*
|
||||||
* @param args command line args
|
* @param args command line args
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(final String[] args) {
|
||||||
// The captain can only operate rowing boats but with adapter he is able to use fishing boats as well
|
// The captain can only operate rowing boats but with adapter he is able to
|
||||||
|
// use fishing boats as well
|
||||||
var captain = new Captain(new FishingBoatAdapter());
|
var captain = new Captain(new FishingBoatAdapter());
|
||||||
captain.row();
|
captain.row();
|
||||||
}
|
}
|
||||||
|
@ -27,21 +27,21 @@ package com.iluwatar.adapter;
|
|||||||
* The Captain uses {@link RowingBoat} to sail. <br>
|
* The Captain uses {@link RowingBoat} to sail. <br>
|
||||||
* This is the client in the pattern.
|
* This is the client in the pattern.
|
||||||
*/
|
*/
|
||||||
public class Captain {
|
public final class Captain {
|
||||||
|
|
||||||
private RowingBoat rowingBoat;
|
private RowingBoat rowingBoat;
|
||||||
|
|
||||||
public Captain() {}
|
public Captain() { }
|
||||||
|
|
||||||
public Captain(RowingBoat rowingBoat) {
|
public Captain(final RowingBoat boat) {
|
||||||
this.rowingBoat = rowingBoat;
|
this.rowingBoat = boat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRowingBoat(RowingBoat rowingBoat) {
|
void setRowingBoat(final RowingBoat boat) {
|
||||||
this.rowingBoat = rowingBoat;
|
this.rowingBoat = boat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void row() {
|
void row() {
|
||||||
rowingBoat.row();
|
rowingBoat.row();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,8 @@
|
|||||||
package com.iluwatar.adapter;
|
package com.iluwatar.adapter;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
import static org.slf4j.LoggerFactory.getLogger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -32,11 +33,11 @@ import org.slf4j.LoggerFactory;
|
|||||||
* Fishing boat moves by sailing.
|
* Fishing boat moves by sailing.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class FishingBoat {
|
final class FishingBoat {
|
||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(FishingBoat.class);
|
private static final Logger LOGGER = getLogger(FishingBoat.class);
|
||||||
|
|
||||||
public void sail() {
|
void sail() {
|
||||||
LOGGER.info("The fishing boat is sailing");
|
LOGGER.info("The fishing boat is sailing");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,8 +25,8 @@ package com.iluwatar.adapter;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Adapter class. Adapts the interface of the device ({@link FishingBoat}) into {@link RowingBoat}
|
* Adapter class. Adapts the interface of the device ({@link FishingBoat})
|
||||||
* interface expected by the client ({@link Captain}).
|
* into {@link RowingBoat} interface expected by the client ({@link Captain}).
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class FishingBoatAdapter implements RowingBoat {
|
public class FishingBoatAdapter implements RowingBoat {
|
||||||
@ -37,8 +37,7 @@ public class FishingBoatAdapter implements RowingBoat {
|
|||||||
boat = new FishingBoat();
|
boat = new FishingBoat();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public final void row() {
|
||||||
public void row() {
|
|
||||||
boat.sail();
|
boat.sail();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
package com.iluwatar.adapter;
|
Loading…
x
Reference in New Issue
Block a user