
设计模式
李煊
这个作者很懒,什么都没留下…
展开
-
设计模式-观察者模式
分为观察者(observer)和被观察者(subject)两种类; 被观察者的状态一旦变化,则触发被观察者的update方法。 suject抽象类有List<observer>属性对象,notify方法会循环它触发observer的update方法。 subject类还有增加和删除observer。 subject实现类或继承类需要有状态属性。 观察者需要有被观察者的引用...原创 2019-03-14 09:32:34 · 87 阅读 · 0 评论 -
设计模式-单例模式
1.隐藏构造方法,private 类名(); 2.定义一个静态的本身变量,避免重复创建 3.写一个静态的public getInstance()方法用于外界获取该类 class Singleton{ private Singleton(){} public static Singleton singleton; public static getSingleton(...原创 2019-03-13 14:40:56 · 73 阅读 · 0 评论 -
设计模式-工厂模式
定义产品接口 每多一种产品就实现一个子类 定义一个工厂类接口 一种产品就有一个实现工厂接口的实现类 客户端调用: 首先new一个产品工厂,然后用产品工厂创建产品类,最后调用产品的方法。 好处是:相对于简单工厂来说,解决了工厂类与产品子类的耦合。 坏处:每增加一种产品,要增加相应的工厂类 补充:这个其实是把switch判断用哪个产品类的代码转移到了客户端,让客户端new产品...原创 2019-03-13 13:59:21 · 93 阅读 · 0 评论 -
设计模式-策略模式
案例:商场收银,有多种右侧策略 定义一个策略抽象类,有一个计算价格的方法price(); 很多策略子类实现自己的策略。 定义一个环境策略,有一个Strategy类的成员变量;通过某种判断使Strategy引用指向一个子类实例对象。环境策略定义自己的getresult()方法。 客户端直接调用环境策略对象,传入判断的条件,或直接传入策略子类。然后客户端调用getresult方法计算。 ...原创 2019-03-13 13:23:58 · 75 阅读 · 0 评论 -
设计模型-简单工厂
一个抽象父类,很多继承类(实际算法)。然后有一个工厂类,有运算类的对象引用,有一个创建方法,根据不同的条件返回不同的实例对象。原创 2019-03-13 10:16:56 · 216 阅读 · 0 评论 -
设计模式-代理模式
代理类和被代理类要是先同一个接口,代理类要有suject的引用,在初始化构造的时候讲realSubject实例对象注入。代理类的方式直接调用subject对象的相应方法。 ...原创 2019-03-13 10:06:44 · 116 阅读 · 0 评论 -
设计模式-装饰模式
主要思想:嵌套转移职责。 需求: 首先问题,买奶茶,奶茶店有奶茶,沙冰,奶昔三种品种。每种可以添加草莓,芒果,果冻。每一样都有自己的价格。现在买一个奶茶+芒果+果冻多少钱。 实现: 装饰模式:有被装饰者(奶茶,沙冰,奶昔)。装饰品(草莓,芒果,果冻)。 进行抽象:有一个装饰类a(抽象类),是所有类的父类。装饰类提供一个抽象方法price()。每个子类实现这个方法来在原来的基础上加上自己单...原创 2019-03-13 09:17:13 · 130 阅读 · 0 评论 -
设计模式-组合模式
https://www.cnblogs.com/V1haoge/p/6489827.html 组合模式:用于体现部分与整体层次的结构时,比如输文件夹下的目录与文件。以及希望用户忽略组合对象与单个对象的不同。组合对象相当于文件夹,树枝。单个对象相当于叶子节点。 ...转载 2019-03-14 14:15:27 · 100 阅读 · 0 评论 -
设计模式-命令模式
将请求封装成对象。在client和命令中间加一个命令统计下达对象invoker,里面要有List<command>对象存储命令。来隔绝Client和命令。 命令有多种所以进行抽象。 命令有一个执行者,所以命令要有receiver对象引用。然后命令的执行内容是调用的receiver的相应方法。 Client端下达命令,首先需要创建命令对象和传递对象invoker,其次要将命令传...原创 2019-03-14 13:15:20 · 90 阅读 · 0 评论 -
设计模式-适配器
有一个目标接口,我们是想调用目标接口的请求方法。但是实际上的实现操作sepcificRequest方法与request方法并不符合,比如参数等等。 案例:插头转换器,110v转120v 所以中间加一个适配器类。适配器来实现目标接口。在request类中去调用specificReqyest方法。 ...原创 2019-03-14 11:23:16 · 119 阅读 · 0 评论 -
设计模式-抽象工厂
适用于产品组装。工厂方法是生产不同牌子的某一单一产品如cpu。抽象工厂是生产有多种配件,且需要自由组装的产品如电脑。 思路: 要生产的产品是一个多组件的产品,每一个组件有一个接口,其实现类分别生产不同牌子的组件产品。 组装产品的工作交给工厂。因为可以组装多套产品,所以有一个抽象工厂,每个实现为一个组装方案。 客户端需要有各种子组件的抽象类引用,和抽象工厂类的引用。 抽象产...原创 2019-03-14 11:06:22 · 88 阅读 · 0 评论 -
设计模式-模板方法
定义一个模板类,共同的部分提升到模板类。算法方法中不一样的操作部分定义为一个新的抽象方法,让子类去实现。 优点:代码复用原创 2019-03-13 20:36:13 · 87 阅读 · 0 评论