Simon Blog

Stay young.

设计模式之工厂方法模式

工厂方法

定义一个用于创建对象的接口,让子类决定实例化哪个类。 Activity的onCreate方法相当于工厂方法 使用场景 ① 需要创建复杂对象时。 代码实现 实现的几个角色: 1.AbstractFactory抽象工厂类 2.TruckFactory具体工厂类 3.AbstractCar抽象产品类 ...

设计模式之Build模式

Build模式

Build模式将构造与表示进行分离,不同的构造过程有不同的表示。 使用场景 ① 当一个类,调用其不同方法/或者调用顺序不同时,需要产生不同的表示结果时。 ② 当初始化一个类,需要设置比较多成员参数时。 ③ 配置类 代码实现 实现的几个角色: 1.AbstractUser抽象类 2.User具体类 3.Ab...

设计模式之单例模式

单例模式

单例模式保证系统中一个类只有一个实例。 目的及缺点(使用场景) ① 避免对象频繁创建销毁的性能开销,较少内存开支。(对象的使用频率较高) ② 单例能提供全局访问入口,共享资源访问。 ③ 避免多重占用,单例能避免多个实例对同一资源的同时读写操作。 【缺点】 扩展难,只能通过修改代码实现需求变动;内存泄漏;单例类不要序列化。 代码实现方式 实现关键点: 1....

设计原则伪笔记

六大设计原则

单一职责 里氏替换 开闭原则 依赖倒置 接口隔离 迪米特法则。 单一职责原则(SRP) 目的 代码业务逻辑清晰,便于维护。 具体实现 代码上的职责需要根据个人经验、具体业务进行划分,在类中,封装的成员属性和函数功能必须具备相关性很高的特点;在接口中,声明的方法 需要是一组相关性很高的动作;在方法中,多个形参若无相关性则应该再划分多个方法。 里氏替换原则(LSP) 继承抽象-...

解决MySQL中文乱码

修改配置文件永久解决

MySQL日常问题解决方式的简单记录。 修改配置,设置默认字符集 vim /etc/mysql/mysql.conf.d/mysqld.cnf # Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you c...

性能优化之应用启动

缩小应用启动时间

性能优化解决方式的简单记录。

基于阿里云服务器搭建JavaWeb开发环境

ubuntu下安装配置jdk tomcat mysql

针对非运维开发者来说,也需要掌握对环境搭建、配置、日常维护的基本技能。本文将记录基于阿里云服务器ECS进行JavaWeb开发环境的搭建流程及注意事项。 软件版本 System: Ubuntu 14.04 MySQL Community Server: 5.7.20 Apache Tomcat: 8.5.23 JDK: 1.8.0_191 JDK安装 ① 解压 mkdir /usr...