![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 70
等待闪电
这个作者很懒,什么都没留下…
展开
-
(四)设计模式——代理,职责链,命令模式
描述:为其它对象提供一种代理以控制(隔离,使用接口)对这个对象的访问场景: java代码如下:上面代码中使用了静态代理,增加了代理类来对类的功能进行增强,同时保证对调用者的视图不发生改变。此外还有动态代理,使用过Spring的同学想必都不会陌生。相比静态代理,动态代理通过动态生成类文件,使得代理类的功能更加灵活,同时避免了项目代码的膨胀。 描述:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求直到有一个对象处理它为止。场景:java代码:原创 2022-06-15 00:57:52 · 561 阅读 · 0 评论 -
(三)设计模式——单例模式
描述:一个类只有一个实例,并且为它提供一个全局访问点场景:java代码为保证对象的全局唯一,我们只需要把该对象属性设置为static即可。这样该对象会在第一次访问时被创建(lazy模式)需要强调的是,一定要显示把类的构造访问声明为private,否则类会自动生成修饰符public的构造方法,这样外部调用者就可以通过new创建多个对象。.........原创 2022-06-12 16:20:29 · 1487 阅读 · 0 评论 -
(二)设计模式——构建器,原型模式
描述:将一个复杂对象的构建与其表示相分离,使得同样的构建过程(稳定)可以创建不同的表示(变化)。builder 模式主要用于“分步骤构建一个复杂的对象”。在这其中 “分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。场景: java代码 看完了代码,那么如何理解”相同的构建过程(稳定)可以创建不同的表示(变化)“呢?在抽象的Builder类中指定了构造对象的各个步骤,而在Controller类中指定步骤执行顺序,后面也不会再做改变(稳定)。而每个步骤的具体实现则可由具体实现类来决定(变换)。原创 2022-06-12 00:13:11 · 526 阅读 · 0 评论 -
(一)设计模式——简单工厂,工厂方法和抽象工厂
创建型模式将对象的部分创建工作延迟到子 类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击。下面将结合java代码进行对简单工厂,工厂方法和抽象工厂3种设计模型进行分析 描述:通过传入参数控制对象的生成场景: 具体代码如下可以发现,在Factory中,生成对象是通过传入的参数定死的,日后如果有新的实现类,就需要修改原代码。这无疑违背了开发封闭原则——对扩展开发,对更改封闭。 描述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使得一个类的实例原创 2022-06-11 22:53:18 · 832 阅读 · 1 评论 -
23种设计模式笔记整理
设计模式创建型模式将对象的部分创建工作延迟到子 类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击。 工厂方法(factory method)定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使得一个类的实例化延迟(目的:解耦, 手段:虚函数)到子类。 抽象工厂(abstract factory)提供一个接口,让该接口负责创建一系列“相关或者相互依 赖的对象”,无需指定它们具体的类。如果没有应对“多系列对象构建”的原创 2021-11-18 14:21:23 · 335 阅读 · 0 评论 -
面向对象设计原则
依赖倒置原则DIP高层模块(稳定)不应该依赖于底层模块(变化),二者都应该依赖于抽象(稳定)抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)。开发封闭原则OCP对扩展开发,对更改封闭类模式应该是可扩展的,但是不可修改的单一职责原则SRP一个类应该仅有一个引起它变化的原因变化的反向隐含着类的责任Liskov替换原则LSP子类必须能够替换他们的基类(is a)继承表达类型抽象接口隔离原则ISP不应该强迫客户程序依赖它们不用的方法接口应该小而完原创 2021-04-05 19:59:44 · 94 阅读 · 0 评论