美文网首页
(八)适配器模式

(八)适配器模式

作者: feiry | 来源:发表于2019-07-21 16:52 被阅读0次

    如果水果店的橘子包装盒用完了,苹果包装盒有多余,需要代替一下怎么做。


    橘子包装盒用完了

    苹果包装盒很有可能不太适合装橘子,有可能挤压碰撞等,需要做一些操作来适应橘子,这时候就需要适配一下。


    适配一下包装盒

    适配器模式

    结构关系
        private static OrangeBag getBag2(){
            //准备用途苹果盒代替
            AppleBag appleBag = new AppleBag();
    
            //把苹果盒适配成桔子包装盒
            OrangeBag orangeBag = new OrangeBagAdapter(appleBag);
    
            return orangeBag;
        }
    
        public static void main(String[] args){
            Orange orange = new Orange("peter",100);
            OrangeBag bag = getBag2();
            orange.pack(bag);
        }
    
    /**
     * 桔子包装适配器
     */
    public class OrangeBagAdapter extends OrangeBag {
        private AppleBag appleBag;
    
        public OrangeBagAdapter(AppleBag appleBag){
            this.appleBag = appleBag;
        }
    
        @Override
        public void pack() {
            appleBag.pack();
        }
    }
    

    适用场景

    原有功能无法扩展,临时组合的场景

    总结

    通过添加一个适配类,组合原有类,来进行功能转换
    适配器模式其实是一个结构设计不合理的补救措施

    相关文章

      网友评论

          本文标题:(八)适配器模式

          本文链接:https://www.haomeiwen.com/subject/zgfvlctx.html