
23个设计模式(学习笔记)
冬夏莫凉丶
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java-23个设计模式 Builder 建造者模式
Builder在软件系统中,有时候面临着 " 一个复杂对象 " 的创建工作,通常由各个部分的子对象由一定算法构成。各个部分剧烈变化,而将他们组合的算法却相对稳定。① 创建手机的父类和子类(Huawei和Apple)/** * 将对象的表示和构建相分离,时同样的构建过程有不同的表示 * Mobile是对象的表示 * Director是同样的构建过程 */public a...原创 2019-03-24 22:01:08 · 118 阅读 · 0 评论 -
Java-23个设计模式 Abstract Factory 抽象工厂模式
Abstract Factory一系列相互依赖的对象的创建工作 (提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类)① 创建抽象工厂SoftWareFactory(生成一个软件,iOS平台或者Android平台)/** * 软件工程基类 * 一个软件在多个平台的应用iOS和Android */public abstract class SoftWar...原创 2019-03-24 15:11:30 · 112 阅读 · 0 评论 -
Java-23个设计模式 Factory Method 工厂模式
Factory Method延迟类的实例化(支持变化,延迟到子类),解耦(new 后面的具体类)① 创建基类,定义工厂方法所创建的对象的接口(这里生产电脑系统Linux和Computer)/** * 工厂基类 */public abstract class SystemProductFactory { // 工厂方法 abstract ComputerSyste...原创 2019-03-24 01:12:45 · 127 阅读 · 0 评论 -
Java-23个设计模式 Bridge桥接模式
Bridge将抽象部分(业务功能)与它的实现部分分离(平台分离),使它们可以独立地变化。① 创建软件与平台的接口SoftWareImpl(其实现类(iOS或者Android)会实现与软件连接的接口)/** * 软件与平台的接口 */public interface SoftWareImpl { // 连接接口 public void connect(); ...原创 2019-03-23 23:06:43 · 116 阅读 · 0 评论 -
Java-23个设计模式 Decorator装饰者模式
Decorator: 动态(组合)地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比生成子类更为灵活(继承)① 创建Component组件(Human)/** * 抽象类,人类 */public abstract class Human { // 跑 abstract void run();}② 创建具体对象Con...原创 2019-03-23 18:12:10 · 140 阅读 · 0 评论 -
Java-23个设计模式 Strategy
Strategy定义一系列算法,一个个封装起来并且使他们可相互替换(变化),使算法可独立于使用它的客户(稳定)而变化。① 创建(所有算法公共)接口public interface MathStrategy { // 计算抽象方法 public int calculate(int a,int b);}② 创建接口实现类,加减(以后可能需要乘除)public...原创 2019-03-22 22:13:16 · 110 阅读 · 0 评论 -
Java-23个设计模式 Template Method
Template Method① 模板方法:在抽象类中定义一个稳定的算法骨架(如一个方法中有固定业务逻辑)public abstract class AbstractTemplate { // 稳定的骨架 public void getChampion(){ // 固定逻辑 dohookMethod(); System.o...原创 2019-03-22 20:34:58 · 154 阅读 · 0 评论 -
Java-23个设计模式 Proxy 代理模式
Proxy在面向对象系统中,有些对象由于某种原因(如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问[分布式访问对象,安全访问]等),直接访问会给使用者、或者系统结构带来很多麻烦① 创建接口public interface Subject { void run();}② 创建具体实现类/** * 实现Subject接口的实体类 */pu...原创 2019-03-25 17:13:01 · 123 阅读 · 0 评论 -
Java-23个设计模式 Facade 外观模式
Facade在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层(间接)(稳定)的接口,来隔离本来互相紧密关联的接口① 设计种类繁多,这里主要体现的是一种设计原则和思想的表达② Facade部分是稳定的部分,返回数据对象的更改优点: 从客户程序的角度来看,Facade模式简化了整个组件系统接口,对组件内部和外部客户程序...原创 2019-03-25 15:10:22 · 186 阅读 · 0 评论 -
Java-23个设计模式 Flyweight 享元模式
Flyweight主要解决面向对象的代价问题,一般不触及面向对象的抽象性问题。Flyweight采用对象共享的做法来降低系统中对象的个数,从而降低细粒度对象给系统带来的内存压力。如本例中:用户通过不同品牌的手机发送短信,要求每个品牌只创建一次,当下次有人还要用创建过的对象发信息时,从对象池中拿。① 创建一个发信息的接口(可供手机实现)/** * 发送消息的接口 */pub...原创 2019-03-25 14:26:25 · 161 阅读 · 0 评论 -
Java-23个设计模式 Singleton 单例模式
Singleton分为懒汉式和饿汉式和登记式,适用于一个类只有一个实例的情况(保证一个类仅有一个实例,并提供一个该实例的全局访问点)懒汉式:在第一次调用方法的时候会做一个判断,如果实例不存在,则创建一个,如果实例存在,则直接返回。延迟加载,比如配配置文件,被用到的时候才会加载饿汉式:一开始就加载了① 懒汉模式/** * * 懒汉模式:第一次被引用时候才被初始化 *...原创 2019-03-24 23:29:57 · 130 阅读 · 0 评论 -
Java-23个设计模式 Prototype 原型模式
Prototype用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象① 从工厂模式中的例子过来,将工厂基类创建对象的抽象类移到系统抽象类,用Java克隆代替/** * 抽象类 */public abstract class ComputerSystem implements Cloneable { abstract void run(); pu...原创 2019-03-24 16:40:10 · 105 阅读 · 0 评论