zoukankan      html  css  js  c++  java
  • 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();
    		}
    	}
    
    }
    

      来源:极客学院

  • 相关阅读:
    宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
  • 原文地址:https://www.cnblogs.com/yang101/p/11718263.html
Copyright © 2011-2022 走看看