2、适配器 adapter 模式 加个"适配器" 以便于复用 结构型设计模式

1

线线3线

12100AC,?使AC10012Adapter,.....西AC12100()

使使AdapterAdapterWrapperWrapper 西使西

Adapter

(使) (使)

Adapter

2

Banner,.


package cn.design.adapter;

/**
* @author lin
* @version 1.0
* @date 2020-07-14 11:21
* @Description TODO
*/
public class Banner {

   private String string;

   public Banner(String string) {
       this.string = string;
  }

   public void showWithParen() {
       System.out.println("(" + string + ")");
  }

   public void showWithAster() {
       System.out.println("*" + string + "*");
  }
}

Print,

package cn.design.adapter;

/**
* @author lin
* @version 1.0
* @date 2020-07-14 11:24
* @Description TODO
*/
public interface Print {
   public abstract void printWeak();

   public abstract void printStrong();

}

2.1

PrintBanner, BannerPrint.

package cn.design.adapter;

/**
* @author lin
* @version 1.0
* @date 2020-07-14 11:25
* @Description TODO
*/
public class PrintBanner extends Banner implements Print {

   public PrintBanner(String string) {
       super(string);
  }

   @Override
   public void printWeak() {
       showWithParen();
  }

   @Override
   public void printStrong() {
       showWithAster();
  }
}

Main

package cn.design.adapter;

/**
* @author lin
* @version 1.0
* @date 2020-07-14 11:26
* @Description TODO
*/
public class Main1 {
   public static void main(String[] args) {
       PrintBanner p1 = new PrintBanner("hello world");
       p1.printWeak();
       p1.printStrong();
  }
}

:

(hello world)
*hello world*

2.2

BasePrint

package cn.design.adapter;

/**
* @author lin
* @version 1.0
* @date 2020-07-14 11:24
* @Description TODO
*/
public abstract class BasePrint {
   public abstract void printWeak();

   public abstract void printStrong();

}

PrintBanner2BasePrint

package cn.design.adapter;

/**
* @author lin
* @version 1.0
* @date 2020/7/14 22:10
* @Description TODO
*/
public class PrintBanner2 extends BasePrint {
   Banner banner;

   public PrintBanner2(String string) {
       this.banner = new Banner(string);
  }

   @Override
   public void printWeak() {
       banner.showWithParen();
  }

   @Override
   public void printStrong() {
       banner.showWithAster();
  }
}

Main2

package cn.design.adapter;

/**
* @author lin
* @version 1.0
* @date 2020/7/14 22:11
* @Description TODO
*/
public class Main2 {
   public static void main(String[] args) {
       PrintBanner2 p2 = new PrintBanner2(" main2 ");
       p2.printWeak();
       p2.printStrong();
  }
}

( main2 )
* main2 *

3


Target()

12Print(使)Print(使)

Client ()

使Target 12Main

Adaptee ()

Adapt-er ()Adapt-ee ()Adaptee-100BannerAdapteeTarget(使12),Adapter

Adapter ()

Adapter使AdapteeTarget Adapter AdapterAdapter 10012PrintBannerAdapter使AdapteeAdapter使Adaptee

4使

使?使Adapter?使Adapter?

Bug

Adapter便BugBug( Adaptee)Adapter

5

1

2privatenew ClassName()使(//)

3. ,ocp,


                

圈~

 注公众号

原文地址:https://www.cnblogs.com/naimao/p/13353375.html