Chopper 2019-11-17
点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!
统一建模语言(Unified Modeling Language,UML)又称标准建模语言;常用图包括:用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图, 协作图),实现图。
Singleton 模式主要作用是保证在Java 应用程序中,一个类Class 只有一个实例存在。举例:定义一个类,它的构造函数为private 的,它有一个static的private 的该类变量,在类初始化时实例话,通过一个public 的getInstance方法获取对它的引用,继而调用其中的方法。
第一种饿汉式:
//饿汉式
public class Singleton {
    //私有化构造函数
    private Singleton() {
    }
    //创建一个对象
    private static Singleton instance = new Singleton();
    //提供公有方法返回该对象
    public static Singleton getInstance() {
        return instance;
    }
}第二种懒汉式:
//懒汉式
public class Singleton {
    //私有化构造函数
    private Singleton(){
    }
    //创建一个空对象
    private static Singleton instance = null;
    //创建公有方法调用,对象如果为空创建对象,否则直接返回当前对象
    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}Java 中的23 种设计模式可以分为三类:
创建型模式(5种):
Factory( 工厂模式),Builder( 建造者模式), Factory Method(工厂方法模式),Prototype(原型模式),Singleton(单例模式)。
结构型模式(7种):
Facade(外观模式),Adapter(适配器模式), Bridge(桥接模式), Composite(组合模式),Decorator(装饰器模式), Flyweight(享元模式), Proxy(代理模式)。
行为型模式(11种):
Command(命令模式), Interpreter(解释器模式), Visitor(访问者模式),Iterator(迭代子模式), Mediator(中介者模式), Memento(备忘录模式),Observer(观察者模式),State(状态模式),Strategy(策略模式),Template Method(模板方法模式), Chain Of Responsibleity(责任链模式)。
工厂模式:
工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。
23种模式简单说明:
所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构。每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。
软件开发中,各个开发阶段不是顺序执行的,各个阶段都是并行执行也就是迭代的意思。这样能更好的适应,开发中的需求变化,及人员的变动
解析方式:
用到了数据存贮,信息配置两方面。
代码如下,用编码方式加以解决
public class DOMTest {
    // 文件路径
    private String outFile = "F:\people.xml";
    public static void main(String args[]) {
        new DOMTest();
    }
    public DOMTest() {
        try {
            // 1、获取DOM解析器工厂,以便产生解析器;2、获取DOM解析器,以便解析DOM
            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            Document doc = builder.newDocument();
            // 3.创建元素
            Element root = doc.createElement("老师");
            Element wang = doc.createElement("许");
            // 4.向指定元素节点中增加子元素节点或增加元素到子节点
            wang.appendChild(doc.createTextNode("我是许老师"));
            root.appendChild(wang);
            doc.appendChild(root);
            // 5.设置然后把DOM写回XML文件
            Transformer transformer = TransformerFactory.newInstance().newTransformer();
            // 6.指定Transformer应该使用的首选字符编码,将字符序列作为字节序列进行编码
            transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
            // 7.指定Transformer是否可以添加额外的空白,同时输出
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.transform(new DOMSource(doc),
                          new StreamResult(outFile));
        }
        catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}文件效果:

分享免费学习资料
针对于Java程序员,我这边准备免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
资料领取方式:加入Java技术交流群963944895,点击加入群聊,私信管理员即可免费领取