zoukankan      html  css  js  c++  java
  • java设计模式--桥接模式

    桥接模式(bridge):适用于多层继承机构 ,最少两个维度。

    比如 日志管理

    1.按格式分类

            操作日志,交易日志

    2.按距离分类

            本地记录日志,异地记录日志

    普通的多层次继承

    //普通多层次结构继承
    public interface Computer {
    
        void sale();
        
    }
    
    //台式机
    class Desktop implements Computer{
    
        public void sale() {
            System.out.println("台式机");
            
        }
        
    }
    //笔记本
    class Laptop implements Computer{
    
        public void sale() {
            System.out.println("笔记本");
            
        }
        
    }
    
    //联想台式机
    class LenovoDesktop extends Desktop{
        
        public void sale() {
            System.out.println("联想台式机");
            
        }
    }
    
    //联想笔记本
    class LenovoLaptop extends Laptop{
        
        public void sale() {
            System.out.println("联想笔记本");
            
        }
    }

    桥接模式

    //桥接模式
    public abstract class Computer2 {
        
        
        protected Pinpai pinpai;
    
        public Computer2(Pinpai pinpai) {
            this.pinpai = pinpai;
        }
        
        public void sale(){
            pinpai.sale();
        }
        
        public static void main(String[] args) {
            Computer2 computer2 = new Desktop2(new Lenovo());
            computer2.sale();
            
        }
        
    
    }
    
    class Desktop2 extends Computer2{
    
        public Desktop2(Pinpai pinpai) {
            super(pinpai);
        }
        
        public void sale(){
            super.sale();
            System.out.println("台式机");
        }
        
    }
    
    
    class Laptop2 extends Computer2{
    
        public Laptop2(Pinpai pinpai) {
            super(pinpai);
        }
        
        public void sale(){
            super.sale();
            System.out.println("笔记本");
        }
        
    }
    //品牌
    public interface Pinpai {
        
        void sale();
    
    }
    
    class Lenovo implements Pinpai{
    
        public void sale() {
            System.out.println("联想");
        }
        
    }
    
    class Dell implements Pinpai{
    
        public void sale() {
            System.out.println("戴尔");
            
        }
        
    }

    把两种分类分离开来。

    在一种类别中引入另一种,利用组合的方式实现多层继承结构

    优点:相互独立,容易扩展

  • 相关阅读:
    客户端及服务端_终端模拟
    安装-homebrew
    客户端及服务端_网页访问
    python server搭建
    ping不通localhost但是可以ping通ip地址
    CentOS7 修改Jenkins以root用户运行
    tomcat配置外部静态资源映射路径(windows和Linux部署)
    Centos 6.10 安装 Jenkins
    axios ios 微信浏览器session问题
    微信公众号 分享接口 签名通过 分享无效果(JSSDK自定义分享接口的策略调整)
  • 原文地址:https://www.cnblogs.com/jentary/p/5911037.html
Copyright © 2011-2022 走看看