![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
一只正在奋斗的小菜鸟
这个作者很懒,什么都没留下…
展开
-
6大设计原则及23种设计模式
六大设计原则一、开闭原则1、定义:Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。用抽象构建框架,用实现扩展细节。2、优点:提高软件系统的可重复用性及维护...原创 2019-08-13 21:38:57 · 315 阅读 · 0 评论 -
简单工厂
定义:由一个工厂对象决定创建出哪一种产品类的实例类型:创建型,但不属于GOF23种设计模式适用场景:工厂类负责创建的对象比较少客户端(应用层)只知道传入工厂类的参数对于如何创建对象(逻辑)不关心优点:只需要传入一个正确的参数,就可以获取你所需要的对象而无需知道其创建细节缺点:工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则代码:public ab...原创 2019-08-13 22:09:56 · 130 阅读 · 0 评论 -
1、工厂方法
定义定义一个创建对象的接口,让实现这个接口的类来决定实例化哪个类工厂方法让类的实例化推迟到子类中进行类型创建型适用场景1、创建对象需要大量重复代码2、客户端(应用层)不依赖与产品类实例如何被创建、实现等细节3、一个类通过其子类来指定创建哪个对象优点1、用户只需要关心所需要产品对应的工厂,无须关心创建细节2、加入新产品符合开闭原则,提高可扩展性缺点1、类的个数容易过多,增加...原创 2019-08-14 10:06:49 · 148 阅读 · 0 评论 -
2、抽象工厂
定义抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口无须指定它们具体的类类型创建型适用场景1、客户端(应用层)不依赖与产品类实例如何被创建、实现等细节2、强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码3、提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖具体实现优点1、具体产品在应用层代码隔离,无须关心创建细节2、将一个系列...原创 2019-08-14 16:41:29 · 142 阅读 · 0 评论 -
3、建造者模式
定义将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示用户只需要建造的类型就可以得到它们,建造过程及细节不需要知道类型创建型适用场景1、如果一个对象有非常复杂得内部结构(很多属性)2、想把复杂对象的创建和使用分离优点1、封装性好,创建和使用分离2、扩展性好、建造类之间独立、一定程度上解耦缺点1、产生多余的builder对象2、产品内部发生变化,建造者...原创 2019-08-15 09:58:46 · 160 阅读 · 0 评论