码迷,mamicode.com
首页 > 其他好文 > 详细

信息领域热词分析

时间:2020-06-13 21:11:40      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:理解   必须   border   depend   用户   ble   信息   迪米特法则   模块   

信息领域热词分析

2020.4.1

1 可修改性理解

可修改性理解可理解为:指系统或软件的能够快速地以较高的性价比对系统进行变更的能力。比如说:对于一个网站,我们要修改它某一板块的UI界面,当我们对界面进行修改时是否会引起对另一个UI模块的影响,是否会引起后台控制,业务逻辑代码的变更,是否会引起整个网站的崩溃,这体现了一个网站的整个架构的是否具备可修改性。

包含两个方面:

1、用户需求,2、系统内在需求。

首先在这阐述下“需求,成本,修改”三者的关系:需求无处不在,时时刻刻产生,判别一个需求的重要性来自于它对系统的成本产生的影响,如果严重影响了系统带来的收益,那必须对系统进行修改,如果某一部分相对于系统收益来说微不足道,甚至不会影响系统的收益,那改不改都“无可厚非”,而且有可能你对这部分修改了还会引起系统的故障。

1)局部化意味着实现“模块化”:(单一职责)

function Product(id, description) {

    /**

     * 获取商品ID

     *

     * @return {int   }  商品id

     */

    this.getId = function() {

        return id;

    };

  

    /**

     * 获取商品描述

     *

     * @return {string} 商品描述

     */

    this.getDescription = function() {

        return description;

    }

}

  2)接口隔离原则

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

 

interface I {

    public void method1();

    public void method2();

    public void method3();

    public void method4();

    public void method5();

}

  

class A{

    public void depend1(I i){

        i.method1();

    }

    public void depend2(I i){

        i.method2();

    }

    public void depend3(I i){

        i.method3();

    }

}

  

class B implements I{

    public void method1() {

        System.out.println("B实现接口I的方法1");

    }

    public void method2() {

        System.out.println("B实现接口I的方法2");

    }

    public void method3() {

        System.out.println("B实现接口I的方法3");

    }

    //对于类B来说,method4method5不是必需的,但是由于接口A中有这两个方法,

    //所以在实现过程中即使这两个方法的方法体为空,也要将这两个没有作用的方法进行实现。

    public void method4() {}

    public void method5() {}

}

  

class C{

    public void depend1(I i){

        i.method1();

    }

    public void depend2(I i){

        i.method4();

    }

    public void depend3(I i){

        i.method5();

    }

}

  

class D implements I{

    public void method1() {

        System.out.println("D实现接口I的方法1");

    }

    //对于类D来说,method2method3不是必需的,但是由于接口A中有这两个方法,

    //所以在实现过程中即使这两个方法的方法体为空,也要将这两个没有作用的方法进行实现。

    public void method2() {}

    public void method3() {}

  

    public void method4() {

        System.out.println("D实现接口I的方法4");

    }

    public void method5() {

        System.out.println("D实现接口I的方法5");

    }

}

public class Client{

    public static void main(String[] args){

        A a = new A();

        a.depend1(new B());

        a.depend2(new B());

        a.depend3(new B());

          

        C c = new C();

        c.depend1(new D());

        c.depend2(new D());

        c.depend3(new D());

    }

}

  3)降低模块之间的依赖性是防止连锁反应的必要条件。可据“迪米特法则”来实现。

 

信息领域热词分析

标签:理解   必须   border   depend   用户   ble   信息   迪米特法则   模块   

原文地址:https://www.cnblogs.com/daisy99lijing/p/13121528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!