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月前
|
C#
C#学习相关系列之多线程---ConfigureAwait的用法
C#学习相关系列之多线程---ConfigureAwait的用法
159 0
|
8月前
|
C#
C#学习相关系列之多线程---TaskCompletionSource用法(八)
C#学习相关系列之多线程---TaskCompletionSource用法(八)
248 0
|
存储 编译器 C语言
C++入门第二篇---类和对象【1】&&C++语法细节补充
C++入门第二篇---类和对象【1】&&C++语法细节补充
69 0
|
设计模式 安全 Go
Go中按次序交替打印1212...,你知道它背后的设计模式吗
Go中按次序交替打印1212...,你知道它背后的设计模式吗
|
8月前
|
存储 C++
【C++】function包装器全解(代码演示,例题演示)
【C++】function包装器全解(代码演示,例题演示)
28个案例问题分析---22---原型图的面向对象--xiaopiu
28个案例问题分析---22---原型图的面向对象--xiaopiu
85 0
|
设计模式 监控 Java
案例18-面向对象之开门小例子
面向对象之开门小例子
133 0
28个案例问题分析---21---面向对象复用、面向对象实现、立体化权限--思想
28个案例问题分析---21---面向对象复用、面向对象实现、立体化权限--思想
79 0
28个案例问题分析---08---让软件的使用者成为软件的设计者--思想
28个案例问题分析---08---让软件的使用者成为软件的设计者--思想
79 0
|
SQL 数据库
SQL 语言的详解 --- 最最基础的内容!!! 刚学完常复习
SQL 语言的详解 --- 最最基础的内容!!! 刚学完常复习
107 0
SQL 语言的详解 --- 最最基础的内容!!! 刚学完常复习

热门文章

最新文章