设计模式
文章平均质量分 58
蜡笔小七
没有迷路的人,只有迷人的路。
展开
-
设计模式-JDK动态代理和cglib动态代理
动态代理和静态代理区别静态代理在编译时就已经实现,编译完成后代理类是一个实际的class文件动态代理是在运行时动态生成的,即编译完成后没有实际的class文件,而是在运行时动态生成类字节码,并加载到JVM中JDK动态代理此处采用火车票的例子,动态代理对象实际代理的是zhixing火车票,就是实际是帮智行卖火车票,则代理对象持有被代理对象的引用,这里有智行和飞猪两家售票点,代理对象可以任意切换代理的对象,非常方便,无需再创建单独的代理对象,但是他们都需要实现相同的接口就是railwaysBurea原创 2021-06-01 10:02:49 · 128 阅读 · 0 评论 -
设计模式-代理模式
代理模式定义代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。优点1.代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;2.代理对象可以扩展目标对象的功能;3.代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性(方法增强)缺点1.代理模式会造成系统设计中类的数量增加2.在客户端和目标对象之间增加一个代理对象,会造成原创 2021-05-28 15:33:21 · 61 阅读 · 0 评论 -
设计模式-建造者模式
建造者模式定义指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。优点1.封装性好,构建和表示分离。2.扩展性好,各个具体的建造者相互独立,有利于系统的解耦。3.客户端不必知道产品内部组成的细节,建造者可以对创建过程逐步细化,而不对其它模块产生任何影响,便于控制细节风险。缺点1.产品的组成部原创 2021-05-26 17:41:11 · 109 阅读 · 1 评论 -
设计模式-抽象工厂
抽象工厂抽象工厂模式(Abstract Factory)是一个比较复杂的创建型模式。抽象工厂模式和工厂方法不太一样,它要解决的问题比较复杂,不但工厂是抽象的,产品是抽象的,而且有多个产品需要创建,因此,这个抽象工厂会对应到多个实际工厂,每个实际工厂负责创建多个实际产品抽象工厂(AbstractFactory)模式的定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生原创 2021-05-25 23:47:11 · 151 阅读 · 0 评论 -
设计模式-工厂方法模式
工厂方法模式“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。(不仅仅对产品进行抽象,对工厂也进行抽象)优点:1.用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。2.灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。3.典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。缺点:1.类的个数容易过多,增加复杂度2.增加了系统的抽象原创 2021-05-25 23:01:40 · 54 阅读 · 0 评论 -
设计模式-简单工厂(静态工厂方法)
简单工厂模式定义 在简单工厂模式中创建实例的方法通常为静态(static)方法,因此简单工厂模式(Simple Factory Pattern)又叫作静态工厂方法模式(Static Factory Method Pattern)简单工厂模式每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度,违背了“开闭原则”。工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。优点1.工厂类包含必要的逻辑判断,原创 2021-05-25 22:48:50 · 268 阅读 · 0 评论 -
设计模式-单例模式
单例模式定义单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。特点1.单例类只有一个实例对象;2.该单例对象必须由单例类自行创建;3.单例类对外提供一个访问该单例的全局访问点。优点1.单例模式可以保证内存里只有一个实例,减少了内存的开销。2.可以避免对资源的多重占用。3.单例模式设置全局原创 2021-05-25 20:28:18 · 93 阅读 · 0 评论