我是靠谱客的博主 老迟到龙猫,最近开发中收集的这篇文章主要介绍Java设计所遵循的准则,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 类的关系

在这里插入图片描述

1.1一般关系

主要是体现类的继承和实现
在这里插入图片描述

1.2关联关系

类之间是平级关系
在这里插入图片描述

1.3聚合关系

整体和部分的关系
在这里插入图片描述

1.4合成关系

比聚合关系强,整体对部分对象负责,掌管生命周期
在这里插入图片描述

1.5依赖关系

依赖总是单向的,关联可以是双向的,依赖的一方的属性不为被依赖的类。
在这里插入图片描述

1.6 简单的例子

有一个机房,机房有一台电脑。
电脑有开机关机状态,可以被打开,可以被关闭,被使用。
有个学生进入机房,使用电脑。
这样一个场景,使用Java语言模拟一下。
在这里插入图片描述

/**
 * 机房类
 *
 * @author Guowx
 * @date 2019/5/8
 */
public class PCRoom {

    private Computer cp;

    public Computer configPC() {
        cp = new Computer();
        System.out.println("机房配置了一台电脑...");
        return cp;
    }

}
/**
 * 电脑类
 * 2019/5/8
 *
 * @author Guowx
 */
public class Computer {

    // 电脑的状态
    private boolean status = false;

    public void on() {
        this.status = true;
        System.out.println("电脑开机了...");
    }

    public void off() {
        this.status = false;
        System.out.println("电脑关机了...");
    }

    public boolean isOpen() {
        return this.status==true ? true : false;
    }

}
/**
 * 学生类
 * 2019/5/8
 * Guowx
 */
public class Student {

    private boolean checkStatus(Computer pc) {
        return pc.isOpen();
    }

    public void isUsed() {
        System.out.println("进入机房...");
        PCRoom pcRoom = new PCRoom();
        Computer pc = pcRoom.configPC();
        if (checkStatus(pc)) {
            System.out.println("电脑有人使用了...");
        } else {
            System.out.println("电脑没人使用...");
            pc.on();
        }
    }

}

测试类

public class Test {

    public static void main(String[] args) {
        Student student = new Student();
        student.isUsed();
    }

}

结果:
进入机房…
机房配置了一台电脑…
电脑没人使用…
电脑开机了…

2 抽象类设计原则

一个设计者应力图遵循这些原则

  1. 具体类不是用来继承的
  2. 抽象类应该有尽可能多的共同代码
  3. 抽象类应该尽可能有少量的数据

在这里插入图片描述

3 继承的使用原则

在这里插入图片描述

3.1 里氏代换原则 Liskow Substitution Principle

定义——在一个程序A中,类型为T1的对象换成类型为T2的对象,程序P的行为没有发生变化,T2一定是T1的子类型。

Java语言本身就遵循里氏代换原则,不满足里氏代换原则编译会出错。

吐槽:其实就是Java中的多态,只是在模式的设计上叫里氏代换原则,脱离了Java语言,这个原则在设计中依然可以参考使用。

public class Person {
    public static void main(String[] args) {
        speakName(new Son());		// 传子类参数
        speakName(new Father());		// 传父类参数
    }

    public static void speakName(Father person) {			// 反过来的代换不成立
        person.callName();
    }
}

最后

以上就是老迟到龙猫为你收集整理的Java设计所遵循的准则的全部内容,希望文章能够帮你解决Java设计所遵循的准则所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部