面试 6 设计模式

1, 用过哪些设计模式

1,工厂模式 2,代理模式, 3,策略模式 4,观察者模式 6, 单例模式

工厂模式:

简单工厂模式解决的问题是如何去实例化一个合适的对象.

简单工厂模式的核心思想就是:有一个专门的类来负责创建实例的过程,凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建,比如说写技能是一系列类,那么就可以使用工厂模式来创建,

代理模式:一个是真正的你要访问的对象,一个是代理对象,真正对象与代理对象实现同一个接口,先访问代理类在访问真正要访问的对象.     代理模式就是多一个代理类出来替原对象进行一些操作,比如我们在租房子的时候去找中介,因为他知道的信息更全面,可以替我们进行操作,表达我们的想法.

代理模式的应用场景:

如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种方法

修改原有的方法来适应,这样违反了 对扩展开放,对修改关闭 的原则.

采用一个代理类调用原有的方法,且对产生的结果进行控制,这种方法就是代理模式,使用代理模式,可以将功能划分的更加清晰,有助于后期维护!

策略模式:定义一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户.策略模式的决定权在用户,系统本身提供不同算法的实现,新增或者删除算法,对各种算法做封装.因此,策略模式多用在算法决策系统中,外部用户只需要决定用哪个算法即可.

观察者模式很好理解,类似于邮件订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果文章有更新就回及时通知你,所以简单来讲就一句话:当一个对象变化时,其他依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系.

单例对象是一种常用的设计模式,在c#中,单例对象能保证在一个CLR中,该对象只有一个实例存在,这样的模块有几个好处:

某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销.

省去了new操作符,降低了系统内存的使用频率,减轻GC压力

有些类如交易所得核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了,所以使用单例模式才能保证核心交易服务器独立控制整个流程.

2, 说出4中面向对象的设计原则

单一职责原则:一个类,最好只做一件事,只有一个引起他的变化

开放封闭原则:对于扩展开放,对于更改封闭

替换原则:子类必须能够替换其基类

依赖倒置原则:依赖于抽象

接口隔离原则:使用多个小的专门的接口,而不要使用一个大的总接口 

猜你喜欢

转载自blog.csdn.net/qq_41764460/article/details/81674595
今日推荐