You are My Sunshine

代码小情诗《You are my sunshine》

/**
* 代码情诗:You are my sunshine
* <p/>
* 灵感来自英文歌曲《You are my sunshine》
* <p/>
* hujiawei 15/11/21
*/
public class YouAreMySunshine {

    //情诗主要内容
    public void poem() {
        //You are my sunshine my only sunshine
        I me = new I();
        You you = MySunshine.getSingleInstance();/*你是我的唯一的太阳*/

        //You make me happy when skies are gray
        if (Sky.isGray(you)) {
            you.makeMeHappy(me);/*当天空一片灰暗的时候你会逗我开心*/
        }

        //You'll never know dear how much I love you
        while (true) {
            you.neverKnow(Love.howMuch(me,you));/*你永远不知道我有多么得爱你*/
        }

        //Please don't take my sunshine away
        try {
            you.finalize();
        } catch (Throwable throwable) {
            you = MySunshine.getSingleInstance();/*当GC销毁你的时候我再造一个你*/
        }
    }

    //天空
    static class Sky {
        //天空是否是灰色的,由你是否开心决定 ↖(^ω^)↗
        static boolean isGray(You you) {
            return !you.happy();
        }
    }

    //我
    static class I {
        //我开心啦 ~\(≧▽≦)/~
        public void happy() {
        }
    }

    //你
    static class You {
        //你是否开心,希望你一直开心 (>^ω^<)
        public boolean happy() {
            return true;
        }

        //你能使我开心 ~\(≧▽≦)/~
        public void makeMeHappy(I me) {
            me.happy();
        }

        //你不知道我有多么爱你 (@﹏@)
        public void neverKnow(String howMuch) {
        }

        //"Garbage Collector (GC) 要 take you away" ~~o(>_<)o ~~
        @Override
        protected void finalize() throws Throwable {
            super.finalize();
        }
    }

    //我的太阳
    static class MySunshine extends You {
        //我的太阳我来"造" ↖(^ω^)↗
        private MySunshine() {
        }

        //"单例模式" (⊙o⊙)
        public static MySunshine getSingleInstance() {
            return MySunshineHolder.instance;
        }

        //"为了单例模式的多线程安全" (⊙o⊙)
        static class MySunshineHolder {
            private static MySunshine instance = new MySunshine();
        }
    }

    //爱
    static class Love{
        static final String INFINITE = "INFINITE";
        //我有多爱你,当然是无限爱啦 Y^o^Y
        public static String howMuch(I me, You you){
            return Love.INFINITE;
        }
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Learning Git by Animations

    看到一个动画版的Git教程(网址),动画效果真心不错,所以学了下,本文是记录其中的几个重点部分。

    宅男潇涧
  • Fab and Dialog Morphing Animation

    Fab and Dialog Morphing Animation on Android.

    宅男潇涧
  • Android Dependency Injection Libraries

    本文总结并对比了三种Android依赖注入库:Butter Knife、RoboGuice、Android Annotations的使用

    宅男潇涧
  • android 一些常用的功能方法代码块

    我们这些苦逼的程序员在工作中,每一个老板都希望我们都能把手头的工作做好的,而且是越快越好,那我们要怎么样才能快起来呢?对于开发中常用的代码块无限复做是我们工作...

    郭耀华
  • 重学 Java 设计模式:实战观察者模式「模拟类似小客车指标摇号过程,监听消息通知用户中签场景」

    编程开发这条路上的知识是无穷无尽的,就像以前你敢说精通Java,到后来学到越来越多只想写了解Java,过了几年现在可能想说懂一点点Java。当视野和格局的扩大,...

    小傅哥
  • Java每日一练(2017/7/16)

    最新通知 ●回复"每日一练"获取以前的题目! ●【新】Ajax知识点视频更新了!(回复【学习视频】获取下载链接) ●答案公布时间:为每期发布题目的第二天 ★【新...

    Java学习
  • 浅析类装载 顶

    [Loaded com.guanjian.Parent from file:/E:/classload/out/production/classload/] ...

    算法之名
  • Java14的新特性

    上面列出的是大方面的特性,除此之外还有一些api的更新及废弃,主要见JDK 14 Release Notes,这里举几个例子。

    codecraft
  • Java14的新特性

    上面列出的是大方面的特性,除此之外还有一些api的更新及废弃,主要见JDK 14 Release Notes,这里举几个例子。

    codecraft
  • 分享一个shell脚本用于“基于已安装的rpm包,创建tar压缩包”

    有时候,我们不想在系统中安装rpm包,但是又需要这个rpm包的功能,那么可否实现呢? 这个需求是可以实现的,当我们用tar包去安装这个功能的时候就可以实现了....

    qsjs

扫码关注云+社区

领取腾讯云代金券