设计模式
faster_xp
不积跬步无以至千里
展开
-
设计模式
设计模式软件设计六大原则设计模式设计模式分类软件设计六大原则在谈设计模式之前,首先谈谈与之相关的软件设计六大原则。在软件设计的初期,我们常常会进行需求调研,评估现有的需求并且预测将来很有可能会发生变更的需求,但是我们并不能控制需求的变更。问题来了,一旦需求发生变更,那我们应该怎样处理呐?幸运的是前辈们首先提出了6大设计原则,但这仅仅是“口号”,仅仅是指导你应该做成什么样,并没有告诉你具体应该...原创 2018-10-14 18:31:34 · 105 阅读 · 0 评论 -
设计模式之单例模式
单例模式饿汉式(简单粗暴)懒汉(线程不安全)懒汉(线程安全)单例模式是指整个应用中某个类只有一个实例出现,并且提供一个全局访问点。饿汉式(简单粗暴)这种方法非常简单,因为单例的实例被声明成 static 和 final 变量了,在第一次加载类到内存中时就会初始化,所以创建实例本身是线程安全的。public class Singleton{ //类加载时就初始化 pr...原创 2018-10-14 22:37:51 · 114 阅读 · 0 评论 -
设计模式之策略模式
设计模式之策略模式结构组成示例(改编自网红代码)改进策略模式(Strategy Pattern)是一种简单常用的设计模式,也叫做政策模式(Policy Pattern),定义一组算法,将每个算法封装起来,并且使他们相互转换。结构组成Context封装角色它也叫做上下文角色,起承上启下的封装作用,屏蔽高层模块对策略,算法的直接访问,封装可能存在的变化。Strategy抽象策略...原创 2018-10-15 23:15:53 · 703 阅读 · 0 评论 -
设计模式之动态代理
设计模式之动态代理三要素反例示例优点何为代理,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理。何为代理模式,为其他对象提供一种代理以控制对这个对象的访问。三要素Subject抽象主题角色。可以是抽象类,也可以是接口RealSubject。具体主题角色,也就是被代理角色Proxy代理主题角色。也叫做为委托类,代理类。它负责对真实主题的调用,把所有抽象主题类定义的方法委...原创 2018-10-22 12:55:56 · 668 阅读 · 0 评论 -
设计模式之模板方法模式
设计模式之模板方法模式反例示例优点缺点模板方法模式是一种炒鸡简单的设计模式,它基于继承的代码复用,定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些步骤。我们可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有...原创 2018-10-22 14:56:27 · 108 阅读 · 0 评论 -
设计模式之工厂方法模式
设计模式之工厂方法模式示例优点工厂方法模式就是定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。示例以女娲造人为例,假设造出来的人有白人黑人黄种人,他们都是人,只是肤色不同。接下来用代码描述。/** * @author:xp * @description:人类 * @create: 2018-10-21 22:05 */public...原创 2018-10-21 22:35:28 · 97 阅读 · 0 评论 -
设计模式之建造者(Builder)模式
设计模式之建造者(Builder)模式如何给对象的属性赋值 构造器赋值 JavaBean赋值 Builder模式 总结将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节。如何给对象的属性赋值 构造器赋值 应用举...原创 2018-11-05 18:12:40 · 149 阅读 · 0 评论 -
六大设计原则
面向对象六大设计原则单一职责(Single Responsibility Principle)引起类变化的原因只有一个,即一个类就负责一件事情单一职责要求定义一个类(不仅仅是类,大到模块,小到方法)时,功能要尽可能的简单,定义的越复杂,它能被可重用的可能性就越小。比如,常见的管理系统中,要在页面上展示一个列表数据,类结构如下:public interface UserApi<T...原创 2019-05-13 11:19:22 · 272 阅读 · 0 评论