zoukankan      html  css  js  c++  java
  • 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,


                    

    圈~

     注公众号

  • 相关阅读:
    String的方法capitalize
    python基本运算符
    计算机中常用进制转换
    python中的print函数
    python转义字符
    3.python中的基本概念
    4.input()
    1.计算机基础知识
    Pyhton实用的format()格式化函数
    jieba(结巴)常用方法
  • 原文地址:https://www.cnblogs.com/naimao/p/13353375.html
Copyright © 2011-2022 走看看