Java
-快乐的程序员-
这个作者很懒,什么都没留下…
展开
-
课程笔记:设计模式之开闭原则
原则:在需求变更时,尽量通过扩展软件的实体行为来实现变化,而不是修改现有代码来实现变化。简单来说,就是关闭代码修改通道,打开代码扩展通道。违反开闭原则的情况:class FactoryService { public String produce(int type) { if (type == 1) { return "产品A"; } else { return "产品B"; } }}class Client { public void order(int typ.原创 2020-06-02 17:00:18 · 153 阅读 · 0 评论 -
课堂笔记:设计原则之单一职责原则
定义:单一职责是编写程序的一个准则,是一条不可逾越的红线。它要求设计一个类要么只体现一个功能,要么有多个功能时彼此独立,要么多个功能之间的依赖是单一的。比如下面的类就违反了单一职责,该类可以生产两种产品(A/B),并且以后可以扩充生产更多产品(CDEF…):class FactoryService { private void preProcess(String food) { System.out.print(food + "预加工..."); } public void process原创 2020-06-02 16:16:54 · 234 阅读 · 0 评论 -
课堂笔记:设计原则之李氏替换原则
定义:子类可以扩展父类功能,但不可改变父类的功能。原则一、子类必须实现父类的抽象方法,但不得重写(覆盖)父类的非抽象方法。原则二、子类可以增加自己特有的方法。原则三、当子类覆盖或实现父类方法时,方法的前置条件(即方法的形参)要比父类方法的前置条件更宽松。原则四、当子类覆盖或实现父类方法时,方法的后置条件(即方法的返回值)要比父类方法的后置条件更严格。比如如下场景,子类覆盖了父类的非抽象方法,不满足李氏替换原则,子类再无机会调用父类的方法。public class Father { publ.原创 2020-06-02 15:49:23 · 884 阅读 · 1 评论 -
课堂笔记:依赖倒置设计原则(JAVA版)
面向对象编程时,我们往往容易引入对象之间的依赖关系。这不利于团队并行开发,并且维护代码成本较高(往往需要修改两个类甚至以上)。比如下面的代码(未使用包结构,命令行编译运行的,只是为了演示):// File: Book.javaclass Book { public void readContent() { System.out.println("读的是故事书。"); }}// File: Newspaper.javaclass Newspaper { public void readC原创 2020-06-02 14:03:02 · 178 阅读 · 0 评论