
设计模式
一只正在奋斗的小菜鸟
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 382 阅读 · 0 评论 -
简单工厂
定义: 由一个工厂对象决定创建出哪一种产品类的实例 类型: 创建型,但不属于GOF23种设计模式 适用场景: 工厂类负责创建的对象比较少 客户端(应用层)只知道传入工厂类的参数 对于如何创建对象(逻辑)不关心 优点: 只需要传入一个正确的参数,就可以获取你所需要的对象而无需知道其创建细节 缺点: 工厂类的职责相对过重,增加新的产品 需要修改工厂类的判断逻辑,违背开闭原则 代码: public ab...原创 2019-08-13 22:09:56 · 163 阅读 · 0 评论 -
1、工厂方法
定义 定义一个创建对象的接口,让实现这个接口的类来决定实例化哪个类 工厂方法让类的实例化推迟到子类中进行 类型 创建型 适用场景 1、创建对象需要大量重复代码 2、客户端(应用层)不依赖与产品类实例如何被创建、实现等细节 3、一个类通过其子类来指定创建哪个对象 优点 1、用户只需要关心所需要产品对应的工厂,无须关心创建细节 2、加入新产品符合开闭原则,提高可扩展性 缺点 1、类的个数容易过多,增加...原创 2019-08-14 10:06:49 · 210 阅读 · 0 评论 -
2、抽象工厂
定义 抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口 无须指定它们具体的类 类型 创建型 适用场景 1、客户端(应用层)不依赖与产品类实例如何被创建、实现等细节 2、强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码 3、提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖具体实现 优点 1、具体产品在应用层代码隔离,无须关心创建细节 2、将一个系列...原创 2019-08-14 16:41:29 · 184 阅读 · 0 评论 -
3、建造者模式
定义 将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示 用户只需要建造的类型就可以得到它们,建造过程及细节不需要知道 类型 创建型 适用场景 1、如果一个对象有非常复杂得内部结构(很多属性) 2、想把复杂对象的创建和使用分离 优点 1、封装性好,创建和使用分离 2、扩展性好、建造类之间独立、一定程度上解耦 缺点 1、产生多余的builder对象 2、产品内部发生变化,建造者...原创 2019-08-15 09:58:46 · 211 阅读 · 0 评论