28个案例问题分析---18---开门例子理解面向对象--面向对象

简介: 28个案例问题分析---18---开门例子理解面向对象--面向对象

背景

本文将通过一个例子,分别给出,面向过程和面向对象两种方式进行不同的实现。通过这个例子带领大家理解,学习。什么是面向对象,什么是面向过程。

业务背景

公司老板来到公司,需要行政人员为其打开办公室的门。

两种实现思路


面向过程

行政人员告诉老板钥匙在哪,老板到公司后,拿上钥匙去开门。

面向对象

行政老师负责管理钥匙,拥有开门方法,接受消息方法。

老板拥有发送消息方法。

思路&方案

面向过程实现

public class Client {
    public static void main(String[] args) {
        System.out.println("老板:我需要开门");
        System.out.println("行政:老板,钥匙放在前台了,您开一下吧");
        System.out.println("老板:去前台拿钥匙自己去开门了");
    }
}

面向过程的实现,完成之后,只能解决某个特定的问题。好处是速度很快。

面向对象实现

行政类(接受消息人)

public class ReceiveMessager {
    private void openDoor(){
        System.out.println("我是行政:我来开门了");
    }
    public void receiveMessage( ){
        this.openDoor();
    }
}

老板类(发送消息人类)

public class SendMessager {
    public void sendMessage(ReceiveMessager receiveMessager){
        System.out.println("我是老板:我需要开门");
        receiveMessager.receiveMessage();
    }
}

业务封装类

public class Notice {
    private void business(){
        ReceiveMessager receiveMessager=new ReceiveMessager();
        SendMessager sendMessager =new SendMessager();
        sendMessager.sendMessage(receiveMessager);
    }
    public void notice(){
        this.business();
    }

客户端

public class Client {
    public static void main(String[] args) {
        Notice notice = new Notice();
        notice.notice();
    }

这种方法写的代码,看起来就比面向过程的复杂,那这个代码有什么好处吗?

复用:

假设我们现在有了新的需求,主管来了也需要行政开门。我们使用面向对象的写法。这个开门的行政就可以进行复用了。但是如果是面向过程,那么就无法复用。必须重新从头写。需求多了就无法管理了。


总结

一个简单的例子,既可以体现面向对象和面向过程的不同,这两者没有好坏之分,要视情况而进行选择。


目录
相关文章
|
8月前
|
Java
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
84 0
|
存储 编译器 C++
C++入门第八篇---STL模板---list的模拟实现
C++入门第八篇---STL模板---list的模拟实现
99 1
|
9月前
|
存储 C++
【C++】function包装器全解(代码演示,例题演示)
【C++】function包装器全解(代码演示,例题演示)
|
存储 算法 网络协议
程序设计进阶模拟考试选择判断
程序设计进阶模拟考试选择判断
程序设计进阶模拟考试选择判断
28个案例问题分析---22---原型图的面向对象--xiaopiu
28个案例问题分析---22---原型图的面向对象--xiaopiu
89 0
|
设计模式 监控 Java
案例18-面向对象之开门小例子
面向对象之开门小例子
138 0
28个案例问题分析---21---面向对象复用、面向对象实现、立体化权限--思想
28个案例问题分析---21---面向对象复用、面向对象实现、立体化权限--思想
82 0
28个案例问题分析---08---让软件的使用者成为软件的设计者--思想
28个案例问题分析---08---让软件的使用者成为软件的设计者--思想
97 0
|
安全 C#
案例18-案例开门小例子面向对象演化
案例18-案例开门小例子面向对象演化
|
存储 安全 算法
区块链游戏DAO模式开发步骤详情 |(源码demo实例分析)
区块链游戏的 DAO 模式开发是指利用 DAO 模式进行游戏开发和管理,其中 DAO 代表着“抵抗者”的意思。这种开发模式颠覆了传统游戏开发中的中心化管理方式,通过去除中介和减少不必要的成本来降低游戏开发的成本。