一.编程思维和算法构建
1.抽象基类
①AbstractCollection
②AbstractList
③AbstractQueue
④AbstractSequentialList
⑤AbstractMap
⑥AbstractSet
详情
2.SOLID原则
①单一职责原则(SRP)——— 应该有且仅有一个原因引起类的变更。简单地说:接口职责应该单一,不要承担过多的职责。
②开闭原则(OCP)—— 一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭。简单地说:就是当别人要修改软件功能的时候,使得他不能修改我们原有代码,只能新增代码实现软件功能修改的目的。
③里氏替换原则(LSP)—— 所有引用基类的地方必须能透明地使用其子类的对象。简单地说:所有父类能出现的地方,子类就可以出现,并且替换了也不会出现任何错误。这就要求子类的所有相同方法,都必须遵循父类的约定,否则当父类替换为子类时就会出错。里氏替换原则 LSP 重点强调:对使用者来说,能够使用父类的地方,一定可以使用其子类,并且预期结果是一致的。
④接口隔离原则(ISP)—— 类间的依赖关系应该建立在最小的接口上。简单地说:接口的内容一定要尽可能地小,能有多小就多小。在软件设计中,ISP 提倡不要将一个大而全的接口扔给使用者,而是将每个使用者关注的接口进行隔离。
⑤依赖倒置原则(DIP)—— 高层模块不应该依赖底层模块,两者都应该依赖其抽象。抽象不应该依赖细节,即接口或抽象类不依赖于实现类。细节应该依赖抽象,即实现类不应该依赖于接口或抽象类。简单地说,就是说我们应该面向接口编程。通过抽象成接口,使各个类的实现彼此独立,实现类之间的松耦合。软件设计的 DIP 提倡使用者依赖一个抽象的服务接口,而不是去依赖一个具体的服务执行者,从依赖具体实现转向到依赖抽象接口,倒置过来。
3.常见设计模式
工厂模式
简单工厂模式(也叫静态工厂模式) —— 简单工厂模式不是一个正式的设计模式,但它是工厂模式的基础。它使用一个单独的工厂类来创建不同的对象,根据传入的参数决定创建哪种类型的对象。会违反OOP原则 —— 开闭原则:一个软件实体应当对扩展开放,对修改关闭。
工厂方法模式(也叫静态工厂模式) —— 工厂方法模式定义了一个创建对象的接口,但由子类决定实例化哪个类。工厂方法将对象的创建延迟到子类。该工厂有不修改工厂类的前提,也就是说不修改已有类,实现对扩展是开发,对修改关闭。
抽象工厂模式 —— 抽象工厂模式提供一个创建一系列相关或互相依赖对象的接口,而无需指定它们具体的类。围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
三种工厂模式最终目的都是为了解耦。
单例模式
单例模式是指在整个系统生命周期内,保证一个类只能产生一个实例,确保该类的唯一性。序列化和反射可以破坏单例模式
详情中有段话打错了:"假设在这里没有第二次判断的话,线程a就会再次创建一个新的对象,所以,要在这里再加一次判断。"中的线程a应改为线程b
写了一个小时了该休息一天了。
标签:依赖,JAVA,子类,基础,模式,工厂,抽象,接口 From: https://www.cnblogs.com/qdhys/p/18326763