首页 > 其他分享 >趣解设计模式之《办理入职这么难吗?》

趣解设计模式之《办理入职这么难吗?》

时间:2023-09-10 13:01:06浏览次数:27  
标签:入职 小王 趣解 Car class 设计模式 public 办理

〇、小故事

小王大学毕业,经过大学期间的刻苦学习,终于成功的面试上了一家公司。按照约定的时间,小王兴高采烈的来到公司前台去办理入职手续。

您好,我是来办理入职手续的”小王对前台妹妹说,前台妹妹看都没看他一眼,顺手递给了他一个单子,带着一丝不耐烦的语气跟他说,“照着单子做就行”。小王接过单子一看,瞬间傻眼了,零零总总的列出了30多个条目,比如:

办理档案】如果档案需要你自己去上家公司办理<br> 【办理公积金】公积金自己去办公积金转移<br> 【领取电脑】公司的电脑需要自己去电脑店采购<br> 【办公软件安装】安装公司要求的软件列表进行安装<br> 【确定工位】工位需要自己去申请分配<br> 【办理工资卡】工资卡需要自己去银行办理,然后再去财务绑定一下<br> 【办理工卡】工卡需要自己去制卡处办理领取<br> ……

这都要靠自己去跑腿办理啊……那得办到啥时候啊。**难道办理入职都这么费劲吗?**他给他哥哥打了电话,他哥哥说,别入职了,我给你查了一下,这个公司是骗子公司,赶快回来。小王于是离开了那家公司。经过他哥哥的介绍,成功面试了某大型互联网公司,同样办理入职手续,小王被人力小姐姐带到了会议室,在合同上签了一些字,然后人力小姐姐把电脑,工卡都交给了小王,并带着他去了已经安排好的工位上,小王基本没有做什么,入职流程就结束了。小王非常开心。

通过上面的故事,我们发现,小王在这家大型互联网公司入职的时候,只是跟人力小姐姐说他要入职,那么后面的30多件入职需要待办的事情,人力小姐姐都帮他办完了,对于小王来说,入职如此简单高效。那么,这个人力小姐姐,也就是我们马上要介绍的设计模式——门面模式

一、模式定义

门面模式/外观模式Facade Pattern

提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

二、模式类图

为了进一步描述门面模式,我们可以模拟开车的场景,即:我们坐上一辆汽车的驾驶座,扭转汽车钥匙之后,汽车就发动起来了,但是这个过程其实包含了很多步骤,此处只列出3个步骤:车门上锁中控显示引擎工作。那么,我们通过在Car类中提供一个run()方法来封装汽车启动所需要的一系列操作。那么,对于驾驶员Client,只需要调用Car的run()方法,就可以启动汽车了。具体类图如下所示:

三、代码实现

创建汽车和启动汽车方法Car.java

public class Car {
    private Engine engine;
    private Door door;
    private DashboardDisplay display;
    private Key key;

    public Car() {
        engine = new Engine();
        door = new Door();
        display = new DashboardDisplay();
        key = new Key();
    }

    /** 汽车启动 */
    public void start() {
        if (key.turns()) {
            door.lock();
            engine.start();
            display.refreshDisplay();
        }
    }
}

创建发动机类Engine.java

public class Engine {
    public void start() {
        System.out.println("Engine start");
    }
}

创建车门类Door.java

public class Door {
    public void lock() {
        System.out.println("Door lock");
    }
}

创建中控显示器类DashboardDisplay.java

public class DashboardDisplay {
    void refreshDisplay() {
        System.out.println("DashboardDisplay refreshDisplay");
    }
}

创建钥匙类Key.java

public class Key {
    public boolean turns() {
        System.out.println("Key turns");
        return true;
    }
}

测试类模拟司机开汽车ClientTest.java

public class ClientTest {
    public static void main(String[] args) {
        Car car = new Car();
        car.start(); // 启动汽车,用户并不知道引擎、车门、钥匙、中控的运作
    }
}

今天的文章内容就这些了:

写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享

更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」

标签:入职,小王,趣解,Car,class,设计模式,public,办理
From: https://blog.51cto.com/u_15003301/7424732

相关文章

  • 趣解接口隔离原则之《做个Rapper咋这么难?》
    〇、小故事不知道大家是否看过这样一个短视频——“姐姐去找她的弟弟,因为她的弟弟想要当rapper而荒废了学业,姐姐多番劝导也没有用,最后一怒一下,把弟弟的rapper发型剃了。没有了帅气的rapper发型,弟弟也放弃了当rapper的想法了。”这时候有的同学可能就会问,“扯淡!发型剃掉了就不当r......
  • 适配器设计模式解决接口冲突
    title:适配器设计模式解决接口冲突index_img:https://tuchuangs.com/imgs/2023/08/04/f341f43b9362c8a1.pngtags:-JavaSE-接口categories:-JavaSEhide:falseexcerpt:适配器设计模式解决接口冲突问题描述当一个接口中抽象方法过多,但是我只要使用其中一部......
  • 【设计模式】命令模式Command:在一次请求中封装多个参数
    (目录)命令模式使用频率不算太高。如果熟悉函数式编程的话,会发现命令模式完全没有使用的必要,甚至在业务开发的场景中也很少使用到。不过对于想要找到正确抽象的设计者来说,命令模式的设计思想却非常值得借鉴。命令和查询的区别:查询,获取一个不可变的结果;命令,改变状态,不一定获......
  • java设计模式,简单工厂和抽象工厂有什么区别?
    java设计模式,简单工厂和抽象工厂有什么区别?简单工厂模式:这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。它由三种角色组成:工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,根据逻辑不同,产生具体的工......
  • 设计模式-单例模式
    保证在整个软件系统中,对某个类只能存在一个对象实例。饿汉式(类加载时创建,没用到也创建)1、构造器私有化(防止new对象)。2、类内部创建私有的静态对象。3、用一个公共的getInstance()静态方法返回该对象。如Runtime类懒汉式(使用才创建)1、仍然使构造器私有化。2、类内部定义静......
  • 软件设计模式系列之二———抽象工厂模式
    1抽象工厂模式的定义抽象工厂模式是一种创建型设计模式,它提供了一种创建一组相关或相互依赖对象的方式,而无需指定它们的具体类。该模式以一组抽象接口为核心,包括抽象工厂接口和一组抽象产品接口,每个具体工厂类负责创建特定产品家族,保证这些产品之间的兼容性。客户端代码通过与抽......
  • 超全60000多字详解 14 种设计模式 (多图+代码+总结+Demo)
    超全60000多字详解14种设计模式(多图+代码+总结+Demo)之前读耗子叔文章时,看到过有句话没有实践,再多的理论都是扯淡,个人很赞同。你觉得自己学会了,但实践与学会之间有着很大差别。单例模式(SingletonPattern)定义或概念单例模式:保证一个类仅有一个实例,并提供一个访问的全局访......
  • 设计模式—职责链模式(Chain of Responsibility)
    目录思维导图什么是职责链模式?有什么优点呢?有什么缺点呢?什么场景使用呢?代码展示①、职责链模式②、加薪代码重构思维导图什么是职责链模式?使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它......
  • 设计模式—原型模式(Prototype)
    目录一、什么是原型模式?二、原型模式具有什么优缺点吗?三、有什么缺点?四、什么时候用原型模式?五、代码展示①、简历代码初步实现②、原型模式③、简历的原型实现④、深复制⑤、浅复制一、什么是原型模式?用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实......
  • 1.前端设计模式之单例模式
    无论从实现还是从理论定义上看,单例模式都是最简单的模式,没有之一。单例模式顾名思义就是在整个应用中只存在一个对象实例。 使用这种模式一般为了全局共享资源和出于性能考虑减少过多创建实例带来的性能和资源开销。 全局共享资源:比如全局配置对象,在项目中我们经常用到一些需要全......