zoukankan      html  css  js  c++  java
  • Java-马士兵设计模式学习笔记-桥接模式

    一、概述

    1.桥接模式的应用情况:(1)两个维度扩展(2)排列组合

    二、代码

    1.Gift.java

    1 public class Gift {
    2 
    3     protected GiftImpl giftImpl;
    4 }

    2.GiftImpl.java

    1 public class GiftImpl {
    2 
    3 }

    3.WarmGift.java

     1 public class WarmGift extends Gift {
     2 
     3     public WarmGift(GiftImpl giftImpl) {
     4         //调用父类的giftImpl
     5         this.giftImpl = giftImpl;
     6     }
     7 
     8     @Override
     9     public String toString() {
    10         return this.getClass().getName()+"-----"+giftImpl.getClass().getName();
    11     }
    12 }

    4.WildGift.java

     1 public class WildGift extends Gift {
     2 
     3     public WildGift(GiftImpl giftImpl) {
     4         //调用父类的giftImpl
     5         this.giftImpl = giftImpl;
     6     }
     7 
     8     @Override
     9     public String toString() {
    10         return this.getClass().getName()+"-----"+giftImpl.getClass().getName();
    11     }
    12 }

    5.Flower.java

    1 public class Flower  extends GiftImpl {
    2 
    3 }

    6.Ring.java

    1 public class Ring extends GiftImpl {
    2 
    3 }

    7.MM.java

     1 public class MM {
     2     
     3     private String name;
     4 
     5     public String getName() {
     6         return name;
     7     }
     8 
     9     public void setName(String name) {
    10         this.name = name;
    11     }
    12     
    13 }

    8.Boy.java

     1 public class Boy {
     2 
     3     private String name;
     4     
     5     public void pursue(MM mm){
     6         Gift gift = new WildGift(new Flower());
     7         give(gift, mm);
     8         System.out.println(gift);
     9     }
    10 
    11     public void give(Gift gift, MM mm) {
    12         
    13     }
    14 }

    9.Test.java

    1 public class Test {
    2 
    3     @org.junit.Test
    4     public void test() {
    5         Boy b = new Boy();
    6         b.pursue(new MM());
    7     }
    8 
    9 }

    三、运行结果

  • 相关阅读:
    asp.net mvc 三层加EF两表联查
    asp.net mvc 三层加EF 登录注册 增删改查
    超市管理系统
    asp.net三层架构增删改查
    ACCP8.0 HTML标签
    Sql 优化解决方案
    抽象类与抽象方法
    Form 表单提交的几种方式
    C# 接口的使用(工厂模式)
    使用VBA设置打印页面高度和宽度
  • 原文地址:https://www.cnblogs.com/shamgod/p/4593597.html
Copyright © 2011-2022 走看看