• java设计模式


    总体来说设计模式分为三大类:

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    工厂模式

    1、工厂方法模式

    是我们最常用的实例化对象模式了,是用工厂方法代替new操作

    public class Factory{
    
        public static ISample creator(int which){
    
            if (which==1)
                return new SampleA();
            else if (which==2)
                return new SampleB();
        }
    }

     创建实例:

    iSample sampleA=Factory.creator(1);

    2、抽象工厂模式

    这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,就用抽象工厂

    就将上例中Factory变成抽象类,将共同部分封装在抽象类中,不同部分使用子类实现

    public abstract class Factory{
        public abstract Sample creator();
        public abstract Sample2 creator(String name);
    }
    public class SimpleFactory extends Factory{
        public Sample creator(){
            .........
            return new SampleA
        }
        public Sample2 creator(String name){
            .........
            return new Sample2A
        }
    }
     
    public class BombFactory extends Factory{
        public Sample creator(){
            ......
            return new SampleB
        }
        public Sample2 creator(String name){
            ......
            return new Sample2B
        }
    }

    模板模式

    定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。

    Java的抽象类本来就是模板模式

    优点:

    模板方法模式通过把不变的行为搬移到父类,去除了子类中的重复代码。
    子类实现算法的某些细节,有助于算法的扩展。
  • 相关阅读:
    什么是Map 3D 2012/ AIMS2012中的industry model?
    Windows Azure云计算学习笔记1Windows Azure简介
    图解安装Autodesk Infrastructure Map Server(AIMS) 2012
    [转]Fedora8 Linux下安装mapguide
    鼠标手,轨迹球?
    MapGuide Open Source v2.2 快速安装学习指南
    Autodesk云计算云端CAD,AutoCAD WS Android教程
    Isaac的Civil博客.COLIBRA (Civil Objects Library)介绍
    php redis 发布订阅功能(publish/subscribe)
    (转)placement new
  • 原文地址:https://www.cnblogs.com/stellar/p/5267305.html
Copyright © 2020-2023  润新知