• Java设计模式之外观模式和最少知识原则


    外观模式:

    外观模式:提供一个统一的接口,来访问子系统中一群功能相关接口(类似一键启动,一键关闭等等)
    外观模式定义了一个高层接口,让子系统更容易使用
    降低对外接口耦合度
    外观模式和命令模式各自侧重点,使得外面跟里面解耦
    命令模式侧重点是把命令包装成对象(本身系统接口不变),外观模式是对子系统里面的接口进行简化

      

    最少知识原则:

    最少知识原则:
    1,最少知识原则的意义
    尽量减少对象之间的交互,只留几个“密友”,项目设计中就是不要让太多的类偶合在一起。如果一个对象
    ,如果你要跟它交互和联系的对象和类很多,那这个系统设计的时候,维护起来会很麻烦,升级的时候,牵一发而动全身
    。所以最好设计成类交互对象少,又小。不要让太多的类耦合在一起。这样的好处是一个类的变动
    ,或者这个类设计的时候有偏差,不会大范围拓展出去。所以我们在维护升级的时候更加容易地定位。这样便于维护升级。
    2,如何遵循最少知识原则
    对象的方法调用范围:该对象本身,作为参数传进来的对象,此方法(自身)创建和实例化的对象[说明:有时候一个方法的返回值也是一个对象,作为返回值的对象在使用的时候,就不在这个范围内
    ,所以返回值的对象在使用就是违背最少知识原则了,这是个例外],对象的组件。
    注意:方法的返回值对象最好不要用,在项目中,如果发现类很多,或对象很多,就要采用最少知识原则,使得维护更简便简单
    3,外观模式和最少知识原则

      违背最少知识原则[返回值是个对象]示例:

    package com.java.jikexueyuan.facademode.hometheater;
    
    public class Car{
    	Engine engine;
    	public Car()
    	{
    		//初始化发动机
    	}
    	
    	public void start(Key mKey)
    	{
    		Doors doors=new Doors();
    		boolean authorized=mKey.turns(); //如果这里返回的是子key【对象】的话就违背了最少知识原则,但是这里是boolean变量就没事
    		if(authorized)
    		{
    			engine.start();
    			doors.lock();
    		}
    	}
    
    }
    

      来源:极客学院

  • 相关阅读:
    详解Webpack-dev-server的proxy用法
    .sync修饰符
    [Vue]createElement参数
    ElementUi学习笔记
    A5000项目阅读笔记
    webpack学习-10天搞定webpack4
    bhuilder 采坑日记-大小写问题
    angularjs:$$animateJs is not a function 错误
    webpack4 Cannot find module '@babel/core'
    算法-图论-最短路径-Dijsktra算法
  • 原文地址:https://www.cnblogs.com/yang101/p/11718263.html
Copyright © 2020-2023  润新知