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("戴尔");
            
        }
        
    }

    把两种分类分离开来。

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

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

  • 相关阅读:
    c# 4.0新功能--隐式类型
    常用的sql语句记录
    算法学习-回文数判断
    算法学习-两数之和
    RSA加密(前端js)和MD5加密(后台)同时使用实例
    layer父页获取弹出层输入框里面的值
    关于checkbox的全选和反选实例
    jQuery实用小技巧-获取选中的的下拉框和返回头部滑动动画
    jQuery实用小技巧--输入框文字获取和失去焦点
    得到网站下的文件虚拟路径的方法
  • 原文地址:https://www.cnblogs.com/jentary/p/5911037.html
Copyright © 2011-2022 走看看