设计模式
设计模式
八吨车
这个作者很懒,什么都没留下…
展开
-
单例模式及在源码中的实践
单例模式 定义:保证一个类仅有一个实例,并提供一个全局访问点 适用场景:想确保任何情况下都绝对只有一个实例(单机情况下的计数器,数据库连接池等) 重点: 1:私有构造器 2:线程安全 3:延迟加载 4:序列化和反序列化安全 5:反射攻击 懒加载单例: public class LazySingleton { private static LazySingleton lazySingleton = null; private LazySingleton(){ }原创 2020-05-30 14:00:01 · 260 阅读 · 0 评论 -
建造者模式及在源码中的实践
建造者模式 用多个简单的对象创建一个复杂的对象,将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式在设计时有四种角色: 1.Builder:复杂产品对象的抽象接口 2.ConcreteBuilder:Builder的实现类,主要定义装配流程 3.Director:构造一个使用Builder抽象接口的对象 4.Product:表示被构造的复杂对象。Concrete...原创 2020-04-19 15:59:12 · 454 阅读 · 0 评论 -
抽象工厂模式及在源码中的实践
抽象工厂模式在工厂模式\color{red}{工厂模式}工厂模式上添加了一个创建不同工厂的抽象接口(抽象类或接口实现) 产品等级:如上面的文章,视频 产品族:如上面的Java课程工厂,Python课程工厂 假如现在需要增加一个C课程,那么很容易扩展,创建CCourseFactory实现CourseFactory接口即可,再创建具体的实现方法(CArticle,CVideo) 但是假如在肯出里面增...原创 2020-04-18 15:57:54 · 309 阅读 · 0 评论 -
工厂模式及在源码中的实践
工厂模式在接口\color{red}{接口}接口或抽象方法\color{red}{抽象方法}抽象方法中定义了创建对象的方法,而将具体的创建对象的过程在子类\color{red}{子类}子类中实现,用户只需通过接口创建需要的对象即可,不用关注对象的具体创建过程。工厂模式本质上就是用工厂方法代替new操作创建一种实例化对象的不同方法。 先来看类图 具体代码: Video类(产品) public ab...原创 2020-04-17 22:55:06 · 194 阅读 · 0 评论 -
简单工厂及在源码中的实践
先来看简单工厂Demo的类图 应用层需要什么视频,直接告诉Factory,然后Factory创建好返回给Test(应用层) 下面来看具体实现: 抽象类 public abstract class Video { public abstract void produce(); } 具体实现类 public class JavaVideo extends Video { @Ove...原创 2020-04-17 15:49:58 · 142 阅读 · 1 评论