![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 84
乱世浮生Y
这个作者很懒,什么都没留下…
展开
-
设计模式之简单工厂模式
一、描述 这个不算23种设计模式里面的,只是后面会讲工厂模式,所以拿出来讲下。由一个工厂管理类来控制需要生产什么产品,提供一个生产的方法给客户端使用,客户端根据参数调用来获得不同的产品。工厂类是整个模式的关键所在。它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。二、优劣势优点:用户在使用时可以直接根据工厂类去创建所需的实例,而无需了解这些...原创 2020-01-10 14:10:37 · 233 阅读 · 1 评论 -
设计模式之工厂模式(一)
一、描述 在前面一篇《入门设计模式之简单工厂模式》我们通过了传不同的参数然后在switch里去判断要具体生成哪个产品,在小项目里这样做是没什么太大毛病,那比如我们做的是天猫京东这样的项目呢?商品有千千万万,那这个switch是不是变得非常可怕,为了解决频繁修改代码和代码臃肿 ,那么就需要我们引入工厂模式了。二、优劣势优点:克服了简单工厂违背开放-封闭原则的缺点,又保留了...原创 2020-01-10 14:57:39 · 265 阅读 · 1 评论 -
设计模式之抽象工厂模式(二)
一、描述 当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。好比不同品牌下有各式各样的商品。二、优劣势优点:用户在使用时可以直接根据工厂类去创建所需的实例,而无需了解这些对象是如何创建以及如何组织的。有利于整个软件 体系结构的优化。缺点:产品族扩展非常困难,要增加一个系列的某一产品,既要在抽象里加代码,又要在具体的里面加代码。...原创 2020-01-15 15:37:50 · 149 阅读 · 0 评论 -
设计模式之单例模式(三)
一、描述 最简单的设计模式,一个全局使用的类,避免频繁地创建与销毁。二、优劣势优点:在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化三、需求 设计一个播放声音的功能。四、不使用设计模式 都不考虑设计了,直接撸代...原创 2020-01-09 17:40:13 · 103 阅读 · 0 评论 -
设计模式之装饰模式(十)
一、描述 需要扩展一个类的功能,或给一个类增加附加责任,这些功能可以再动态地撤销。装饰器模式相比生成子类更为灵活,装饰模式是继承的一个替代模式。二、优劣势优点:装饰类和被装饰类可以独立发展,不会相互耦合。缺点:多层装饰比较复杂,顺序特别重要。三、需求 QQ形象的展示,主要有个人资料,衣服、裤子、鞋子。四、不使用设计模式 都不考...原创 2020-01-10 11:19:41 · 102 阅读 · 1 评论 -
设计模式之外观模式(十一)
一、描述 有很多子系统模块,不想让客户端直接去访问它们,定义一个外观类,通过访问这个外观类类调用子系统模块的功能。二、优劣势优点:降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。减少系统相互依赖、提高灵活性。 提高了安全性。缺点:违背了“开闭原则”,当增加新的子系统或者移除子系统时需要修改外观类。三、需求 博物馆监控系统,2个摄像头,2...原创 2020-01-09 11:18:34 · 196 阅读 · 1 评论 -
设计模式之代理模式(十三)
一、描述 想在访问一个类时做一些控制,比如有个歌手类,里面就一个方法-唱歌,我们要调用这个方法前需要判断下我们给的钱够不够,那么这个判断方法我不想加在唱歌的方法里面,也不想加在客户端,那么就可以用代理模式了。二、优劣势优点:1、职责清晰。 2、高扩展性。 3、智能化。缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度...原创 2020-01-10 15:40:48 · 169 阅读 · 0 评论 -
设计模式之中介者模式(十八)
一、描述 对象类与对象类之间的交互通信统一由另外一个中介类来控制 ,对象通过中介类对其他对象交互,中介类起着控制器的作用。二、优劣势优点:降低类与类之间的耦合性,对象与对象之间不再相互引用,把类与类之间的交互抽离出来方便扩展。缺点:关系过于复杂的话,如对象与对象类交互功能比较多时,中介类将异常庞大,不利于后期维护。三、需求 实现房东与租客2个人之间的...原创 2020-01-09 10:16:52 · 149 阅读 · 0 评论