随笔分类 - 设计模式
摘要:客户端将消息对象发送给接收者,责任链模式将接收者连成一条链,并在该链上传递该消息对象,直到有对象处理它。通过让更多对象接触到消息请求,避免了发送者和接收者的耦合。 接收者Handler作为一个抽象类,持有自身引用,指向它的后继接收者successor。我们可以通过工厂模式构建这条责任链。 ...
阅读全文
摘要:工厂模式包括工厂方法模式和抽象工厂模式。而抽象工厂模式是工厂方法模式的扩展。 在工厂模式下,我们通常采用工厂方法来代替new来实例化对象。 具体是如何做的呢? 首先,定义一个接口来创建对象,但是让子类来决定那些类需要被实例化。工厂方法把实例化的工作推迟到子类中去实现。 应用场景 有一组类似的对象需要...
阅读全文
摘要:在程序设计中,某些类只允许存在一个对象,需要使用单例模式来保证某个实例只有一个。例如,配置文件,线程池,缓存,日志对象等等。 单例模式分为懒汉式和饿汉式 饿汉式 在类加载的时候,该实例的对象会被创建。 首先将该类的构造函数私有化,不允许外部直接创建类的实例。 在类的内部创建该类的私有静态实例对象。 ...
阅读全文
摘要:模板方法模式为我们定义了一个算法的框架,框架之中定义了方法的执行步骤,但是具体每一步的方法要由具体的子类来实现。这样,在不改变整个算法结构的同时,就可以定义某个算法的特定步骤。 模板方法模式的类结构如下: 模板函数:在一个抽象基类中定义了一个模板方法,它规定了整个算法的结构并且定义了...
阅读全文
摘要:适配器模式是将一个类的接口,转换成客户期望的另一个接口,使得原来因为接口不兼容的类能够在一起工作。 它由下面四个组件构成: 客户端Client 目标接口Target 被适配者Adaptee 适配器Adapter 通常情况下,将被适配者的类作为对象组合在适配器Adapter类中,同时,适配器Adapt...
阅读全文
摘要:策略模式将可变的部分从程序抽象分离成算法接口,在该接口下分别封装一系列算法实现。这样不同的算法之间可以互相替换,使客户端可以独立这些算法。 根据面向对象的编程思想,我们通常会采用以下方式解决问题。 继承父类 优点:相同场景下代码复用率高 缺点:容易忘记代码的复写,不灵活,不同场景下代码复用率低 抽象...
阅读全文

浙公网安备 33010602011771号