两种模式:
涉及角色:
源角色
- 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 + "*");
- }
- }
目标角色
- public interface Print {
- void printWeak();
- void printStrong();
- }
适配器
- public class PrintBanner extends Banner implements Print{
- public PrintBanner(String string) {
- super(string);
- }
- @Override
- public void printWeak() {
- showWithParen();
- }
- @Override
- public void printStrong() {
- showWithAster();
- }
- }
测试类
- public class Main {
- public static void main(String[] args) {
- Print p = new PrintBanner("Hello");
- p.printWeak();
- p.printStrong();
- }
- }
打印输出
- (Hello)
- *Hello*
目标角色
- public abstract class Print {
- public abstract void printWeak();
- public abstract void printStrong();
- }
适配器
- public class PrintBanner extends Print{
- private Banner banner;
- public PrintBanner(String string) {
- banner = new Banner(string);
- }
- @Override
- public void printWeak() {
- banner.showWithAster();
- }
- @Override
- public void printStrong() {
- banner.showWithParen();
- }
- }
[1]
[2] 结城浩. 图解设计模式 [M]. 北京: 人民邮电出版社, 2017.P14-P22.
来源: