
【设计模式】
wo是球王
被代码耽误的球王
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java设计模式(14) -- 建造者模式
前言 距离上一篇博客的发布已经过去两个月了,这段时间一是工作比较忙,没什么时间写,二呢是因为国庆完成了一件人生大事,和对象完成了婚礼。今天终于有时间接着学习设计模式了。 前面介绍的工厂模式主要专注于产品本身的创建,而现实中大部分产品都不是由几个简单的部件构成,而是一系列复杂的部件构成,这个时候就需要一个专门负责组装的部门来将一系列复杂的对象组合为一个产品,比如汽车需要的部件种类是一样的,但是每...原创 2019-10-16 14:40:30 · 138 阅读 · 0 评论 -
Java设计模式(12) -- 工厂方法模式
定义 工厂方法(FactoryMethod)模式,定义创建对象的工厂接口,创建的具体过程在字类中实现。工厂方法模式满足创建型模式的“创建与使用分离”要求。用户只需要知道工厂提供的接口,不用关心工厂具体具体的创建过程。新增产品时只需要增加具体的产品类和对应的工厂类即可,不会对原有的工厂产生影响。满足“开闭原则”。 实现 工厂方法模式由抽象工厂、具体工厂、抽象产品和具体产品等4个要素构成。 抽...原创 2019-08-13 10:59:14 · 142 阅读 · 0 评论 -
Java设计模式(11) -- 原型模式
定义 原型(Prototype)模式,使用一个已经实例化的对象作为原型,通过拷贝该对象来创建一个和原型相同或相似的新对象。 实现 实现Cloneable接口。只有实现了Cloneable接口的类才能使用clone()方法; 重写Object类中的clone方法。Object类下的clone()方法是protected修饰的,重写为public修饰。 ...原创 2019-08-12 16:15:21 · 109 阅读 · 0 评论 -
Java设计模式(10) -- 单例模式
定义 单例(Singleton)模式,是指在程序运行过程中,一个类至多只有一个实例化对象。 单例类的特点是: 至多只有一个实例化对象; 私有化的构造方法; 对外提供一个public的访问该对象的方法。 实现 单例类的UML类图如下: 单例模式通常有两种实现方式,懒汉式和饿汉式。 1. 懒汉式 懒汉式的特点是在程序第一次调用该类时创建对象。 代码实现:...原创 2019-08-12 15:07:03 · 165 阅读 · 0 评论 -
Java设计模式(9) -- 合成复用原则
定义 合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。 作用 优先使用组合和聚合,尽量少使用继承,可以保证类的封装性,降低类之间的耦合度。 实现方式 合成复用原...原创 2019-08-09 16:48:43 · 397 阅读 · 1 评论 -
Java设计模式(8) -- 迪米特法则
定义 迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。 作用 迪米特法则要求限制软件实体之间通信的宽度和深度,正确使用迪米特法则将有以下两个优点。 降低耦合度,提高模块的相对独立性。 降低耦合度,提高类的可复用性和系统的扩展性。 实现方式 从迪米...原创 2019-08-09 16:19:56 · 133 阅读 · 0 评论 -
Java设计模式(7) -- 接口隔离原则
定义 接口隔离原则(Interface Segregation Principle,ISP)客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 作用 接口隔离原则是为了约束接口、降低类对接口的依赖性,遵循接口隔离原则有以下 5 个优点。 将臃肿庞大的接口分解为多个粒度小的接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。 接口隔离提高了系统的内聚性,减...原创 2019-08-09 16:15:38 · 144 阅读 · 0 评论 -
Java设计模式(6) -- 单一职责原则
定义 单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,规定一个类应该有且仅有一个引起它变化的原因。 作用 单一职责原则的核心就是控制类的粒度大小、将对象解耦、提高其内聚性。如果遵循单一职责原则将有以下优点。 降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多。 提高类的可读性。复杂性降低,自然其可读性会提高。 ...原创 2019-08-09 16:05:30 · 133 阅读 · 0 评论 -
Java设计模式(5) -- 依赖倒置原则
定义 依赖倒置原则(Dependence Inversion Principle,DIP)高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 作用 依赖倒置原则可以降低类间的耦合性; 依赖倒置原则可以提高系统的稳定性; 依赖倒置原则可以减少并行开发引起的风险; 依赖倒置原则可以提高代码的可读性和可维护性。 实现方式 依赖倒置原则实际上就是面向接口...原创 2019-08-09 15:29:25 · 132 阅读 · 0 评论 -
Java设计模式(4) -- 里氏替换原则
定义 里氏替换原则(Liskov Substitution Principle,LSP)面向对象设计的基本原则之一。 里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。-- 摘抄百度百科。 作用 里氏替换原则是实现开闭原则的重要方式之一; ...原创 2019-08-09 15:01:29 · 150 阅读 · 0 评论 -
Java设计模式(3) -- 开闭原则
定义 软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。-- 摘抄百度百科 作用 遵循开闭原则的软件,在保持灵活性时兼备扩展性和延续性。优点包括: 便于测试。每次只需要测试扩展部分即可; 提高代码复用性; 提高代码可维护性。 实现方法 开闭原则是其它原则的基础,核心就是抽象。个人理解就是用抽象构建框架,用实现扩展细节。 举个栗子,人写字的UML类图: ...原创 2019-08-09 14:17:56 · 213 阅读 · 0 评论 -
Java设计模式(13) -- 抽象工厂模式
前言 我们将同一种类的产品成为同级,同一品牌的产品成为产品族。如下图: 前面介绍的工厂方法模式中考虑的一个产品等级下产品的生产,某代工厂,既能生产华为手机,也能生产小米手机。但现但现实中工厂大多都是综合型的工厂,可以按照一个产品族生产产品。这个时候使用工厂方法模式就不合适了。 定义 抽象工厂(AbstractFactory),是一种为客户提供一个创建一组相关或相互依赖对象的接口,且客户...原创 2019-08-13 13:09:54 · 141 阅读 · 0 评论 -
Java设计模式(2) -- UML
简介 统一建模语言(英语:Unified Modeling Language,缩写:UML)是用来表达软件设计的可视化建模语言。特点是简单、统一、图形化。能表达软件设计中的动态和静态信息。 类、接口、类图 类 在UML中,类使用包含类名、属性和方法的矩形表示。其中属性和方法可以选择隐藏。例如Student类。 类名(Name),名称。例如:Student,字符串说明: ...原创 2019-08-08 16:36:43 · 460 阅读 · 0 评论 -
Java设计模式(1) -- 概述
设计模式的概念与意义 概念 软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代...原创 2019-08-08 11:36:20 · 154 阅读 · 0 评论