• 大家觉得Java 味是什么味?
  • 发布于 1个月前
  • 137 热度
    7 评论
  • Vinda
  • 3 粉丝 53 篇博客
  •   
我把 Time 处理相关的写到 TimeUtil 里面,File 相关写到 FileUtil 里面。这样算 Java 味吗。一直是在用 Java 和 Kotlin 写 Android 代码,写 Python 脚本如果是长期项目我是尽量会把代码抽离出来,不知道这样的操作是不是 Java 味太重了。
用户评论
  • 来自人海
  • 就是过度封装 一串代码内只有少数几行真正起关键作用 当然现在都不只 java 这样...
    这样封装他们觉得很灵活 会以生物学角度看待 oop
    但就我来看就是奇美拉 透过继承等特性合成对象 这一串看起来是灵活了 看来是个战力高的生物 但很难与其它类相容 不是不行 但得绞尽脑汁 必需得经过生物演化痛苦的过程
    java 还是可以写不那么 oop 类与命名空间我觉得雷同
    但很少人写的简洁
  • 2025/3/15 11:32:00 [ 0 ] [ 0 ] 回复
  • 叫我冷场王
  • 我受不了的 java 味:
    1. 无意义的抽象和继承,简单问题复杂化,自以为是预留扩展性,然而绝大多数情况下非但用不到,反而是增加了复杂度和项目维护成本(当然有人把这种操作当作防御式编程增加自身不可替代性,实际结果往往不过是叠屎山)
    2. 滥用多线程。有些人似乎觉得 java 不写多线程很 low ,结果滥用多线程,没必要的时候也要强上,然而很多 javaer 实际的心智水平根本玩不转多线程,要么自以为提高效率的多线程实际比一般写法还慢,要么生产出现线程安全甚至死锁,纯纯又菜又爱玩自讨苦吃
    3. 滥用架构。web 服务必上 redis ,设计必须拆成微服务,看似追求最近技术方案,然而却抱着 mysql5.7 、centos6 不放,整天还研究 java1.8 的 jvm 调参,就不想想守着这堆破烂搞架构的路子能走多远。
    4. 把一些 java 本身缺陷导致的东西当作唯一正确性去要求别的语言和框架,比如语法贫瘠导致的各种设计模式,比如灵活性不足而不得不使用的反射技术,比如落后的线程模型催生的一堆教条,很多新的语言和框架从本身就已经解决或者规避了,有些 javaer 用的时候却还习惯性往上靠,靠的不对劲了还觉得是那些语言和框架不行,反正就是 java 祖宗之法不可变……
  • 2025/3/15 11:27:00 [ 0 ] [ 0 ] 回复
  • 且醉
  • 读取某个文件,正常味道的语言
    open().read()
    fd = open(...); read(fd, ...);
    File(...).readAll()
    ioutils.read(...)
    Java 味儿,来,先学一下 reader, buffered reader, inputstream, buffered input stream ,然后再研究用哪个,中间包的用完了该不该 close 。
    设计时就确定只有一个 implementation ,也要强行定义 interface ,还要定义一堆一模一样的 vo/dto...,不要问,问就是业界规范,大家都这么干。
  • 2025/3/15 11:17:00 [ 0 ] [ 0 ] 回复
  • 晴昼烟雨长
  • JAVA味儿比二次元味儿都冲,如果你还需要别人来告诉你啥是 Jvav 味儿而不能靠自己一眼分辨,那说明你自己早就腌制入味了,就好像抽烟的人旁人一闻可知,他自己却总是自我感觉良好。

  • 2025/3/15 11:05:00 [ 0 ] [ 0 ] 回复
  • 乌龙山
  • 大概是这样:

    public interface Subject {
        public void attach(Observer observer);
        public void detach(Observer observer);
        public void notifyObservers();
    }
    public interface Observer {
        public void update(Subject subject);
    }
    public class HelloWorldSubject implements Subject {
        private ArrayList<Observer> observers;
        private String str;
        public HelloWorldSubject() {
            super();
    
            observers = new ArrayList<Observer>();
        }
    
        public void attach(Observer observer) {
            observers.add(observer);
        }
        public void detach(Observer observer) {
            observers.remove(observer);
        }
        public void notifyObservers() {
            Iterator<Observer> iter = observers.iterator();
    
            while (iter.hasNext()) {
                Observer observer = iter.next();
                observer.update(this);
            }
        }
    
        public String getStr() {
            return str;
        }
        public void setStr(String str) {
            this.str = str;
            notifyObservers();
        }
    }
    public class HelloWorldObserver implements Observer {
        public void update(Subject subject) {
            HelloWorldSubject sub = (HelloWorldSubject) subject;
            System.out.println(sub.getStr());
        }
    }
    public interface Command {
        void execute();
    }
    public class HelloWorldCommand implements Command {
        private HelloWorldSubject subject;
    
        public HelloWorldCommand(Subject subject) {
            super();
    
            this.subject = (HelloWorldSubject) subject;
        }
    
        public void execute() {
            subject.setStr("hello world");
        }
    }
    
    
    public interface AbstractFactory {
        public Subject createSubject();
    
        public Observer createObserver();
    
        public Command createCommand(Subject subject);
    }
    
    
    public class HelloWorldFactory implements AbstractFactory {
        public Subject createSubject() {
            return new HelloWorldSubject();
        }
    
        public Observer createObserver() {
            return new HelloWorldObserver();
        }
    
        public Command createCommand(Subject subject) {
            return new HelloWorldCommand(subject);
        }
    }
    
    
    public class FactoryMakerSingleton {
        private static FactoryMakerSingleton instance = null;
        private AbstractFactory factory;
    
        private FactoryMakerSingleton() {
            factory = new HelloWorldFactory();
        }
    
        public static synchronized FactoryMakerSingleton getInstance() {
            if (instance == null) {
                instance = new FactoryMakerSingleton();
            }
    
            return instance;
        }
    
        public AbstractFactory getFactory() {
            return factory;
        }
    }
    
    
    public class AbuseDesignPatterns {
        public static void main(String[] args) {
            AbstractFactory factory = FactoryMakerSingleton.getInstance()
                                                           .getFactory();
    
            Subject subject = factory.createSubject();
            subject.attach(factory.createObserver());
    
            Command command = factory.createCommand(subject);
    
            command.execute();
        }
    }
    

  • 2025/3/15 11:01:00 [ 0 ] [ 0 ] 回复