随笔分类 -  设计模式

摘要:这节讲一下享元模式(Flyweight Pattern)。 在设计一个程序的时候,有时候我们会遇到构建大量重复实例的问题,比如一个五子棋游戏,每一个棋子都是一个对象,它们占据了很大的资源,但是这些对象实际上内部的差别很小,这种情况就催生了享元模式的形成。 享元(Flyweight)模式的定义:运用共 阅读全文
posted @ 2020-12-27 13:38 宿春磊Charles 阅读(146) 评论(0) 推荐(0) 编辑
摘要:这节接着讲设计模式:外观模式(Facade Pattern)。 当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这 阅读全文
posted @ 2020-12-05 16:47 宿春磊Charles 阅读(88) 评论(0) 推荐(0) 编辑
摘要:这节讲桥接模式(Bridge Pattern)。 在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。如何设计类似于 Photoshop 这样的软件,能画不同形状和不同颜色的图形呢?如果用继承方式,m 种形状和 n 种颜色的图形就有 m×n 种,不但对应的子类很多,而且扩 阅读全文
posted @ 2020-11-10 19:57 宿春磊Charles 阅读(102) 评论(0) 推荐(0) 编辑
摘要:接着讲设计模式,这节讲适配器模式(Adapter Pattern)。 在现实生活中,使用直流电的笔记本需要电源适配器才能安全接入交流电,不同语言之间的交流需要翻译官来做翻译,在程序中,我们也会遇到这种需要借助第三方进行适配的情景:当需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当 阅读全文
posted @ 2020-10-24 10:38 宿春磊Charles 阅读(141) 评论(0) 推荐(0) 编辑
摘要:这节讲代理模式(Proxy Pattern)。 代理模式就是将两个类的直接耦合变为间接耦合,通过一个代理类做两个类的桥梁,这种模式既是对对象的代理,又能通过代理类实现被代理对象的扩展,就像我们买火车票可以不用去车站,可以直接在网上或者12306上买,这种购票第三方就是一种代理。并且可以扩展一些相关服 阅读全文
posted @ 2020-10-18 18:52 宿春磊Charles 阅读(93) 评论(0) 推荐(0) 编辑
摘要:这节讲建造者模式(Builder Pattern)。 有些情况下,一个大类需要依赖另外一些小类共同完成一个需求,就好像一个完整的手机需要CPU,屏幕等小零件组成。 建造者模式就用来处理这个组成过程,它的定义为:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被 阅读全文
posted @ 2020-10-14 11:27 宿春磊Charles 阅读(127) 评论(0) 推荐(0) 编辑
摘要:这节讲一下原型模式,原型模式用于解决大量相同或相似对象的创建问题,传统的,我们实例化对象要用new关键字,在面对大量重复对象的创建情况下,new实例的过程是比较消耗资源的,所以我们可以利用一个对象作为原型,通过这个对象的不断克隆自己来产出一个个新实例(这跟js的原型对象并不相同,读者不要跟其做理论比 阅读全文
posted @ 2020-10-08 18:03 宿春磊Charles 阅读(131) 评论(0) 推荐(0) 编辑
摘要:在开发中,工厂模式为我们提供了一种松耦合的形式,在一些需要频繁构造比较复杂的对象时,就可以使用工厂模式,通过对象工厂为我们提供实例,这样在后期维护的时候可以统一的对实例对象的过程进行管理升级。 工厂模式分为三种:简单工厂模式,工厂方法模式,抽象工厂模式。 简单工厂模式: 先看一下代码: static 阅读全文
posted @ 2020-10-06 09:06 宿春磊Charles 阅读(132) 评论(0) 推荐(0) 编辑
摘要:大家应该都玩过超级马里奥,里边有怪物,马里奥正面碰撞就会掉血,有土块,马里奥用头顶就会弹出金币等等。从这个游戏中,我们就可以抽离出关于观察者模式的概念,马里奥是被观察者,怪物,土块等等是观察者,当被观察者“刺激”到观察者后,观察者就会执行对应的行动。 抽象的来说,观察者模式定义了一种一对多的依赖关系 阅读全文
posted @ 2020-10-05 16:54 宿春磊Charles 阅读(150) 评论(0) 推荐(0) 编辑
摘要:新开一节设计模式的演示讲解。 首先理解一下何为设计模式,设计模式是一些代码开发规范,是在编程发展中不断演化的一些优秀的代码模板,通过设计模式,我们可以写出高效优雅的代码。 这节讲单例模式,单例模式是比较简单的一种设计模式,顾名思义,单例模式就是程序运行中只会对象实例化一次的设计模式。比如,设置窗口只 阅读全文
posted @ 2020-09-26 14:54 宿春磊Charles 阅读(116) 评论(0) 推荐(0) 编辑