设计模式
yaonga
这个作者很懒,什么都没留下…
展开
-
结构型模式-适配器模式
1.适配器模式把一个类的接口变换成客户端所期待的另一种接口,使得原本因接口不匹配而无法在一起工作的两个类可以一起工作2.示例//目标接口public interface ObjectTarget{ public void method();}//源接口,被适配的接口public interface ObjectAdaptee{ public void metho...原创 2019-07-29 10:03:32 · 130 阅读 · 0 评论 -
行为型模式-策略模式
1.策略模式将每一个算法封装到具有共同接口的独立类中,客户端自行决定使用 哪一个策略。2.示例public interface Strategy{ public void calculate();}public class StrategyA implements Strategy{ @Override public void calculate() ...原创 2019-08-01 10:28:46 · 117 阅读 · 0 评论 -
行为型模式-模板模式
1.模板模式/** * 模板设计模式 * * 抽取一个抽象模板类,同时定义模板方法 对于模板方法的实现,在子类中去实现 * * */public abstract class GetTimeTemplate { // 固定流程方法 public long getTime() { // 获取起始时间 long t1 = System.currentTimeMilli...原创 2019-07-31 14:03:42 · 112 阅读 · 0 评论 -
结构型模式-代理模式
1.代理模式代理就是帮[目标对象]去完成它应该做,但是不想或者不擅长做的事情。代理模式分为静态代理和动态代理* 静态代理:就是编写一个代理类,去代理[目标对象],在程序运行之前静态代理的.class文件已经存在了,只能服务于指定接口而不能服务于其他接口* 动态代理:在运行期间,通过反射,对[目标对象]产生一个[代理对象]2.动态代理动态代理的实现方式分为两种,下面两种方式生成的代理类都...原创 2019-07-31 10:26:03 · 124 阅读 · 0 评论 -
结构型模式-外观(门面)模式
1.外观模式也叫门面角色,客户端可以调用这个角色的方法,此角色知晓子系统的所有功能和责任,将客户端的请求代理给适当的子系统对象;Subsystem是子系统角色,可以同时拥有一个或多个子系统,每一个子系统都不是一个单独的类,而是一个类的集合,子系统并不知道门面的存在。客户端不需要知道系统内部的复杂联系,整个系统只提供一个“接待员”即可。2.示例//外观类public class Facade...原创 2019-07-30 16:04:54 · 102 阅读 · 0 评论 -
创建型模式-构建者模式
1.构建者模式灵活地构建多个成员变量的复杂对象。2.示例public class Human{ private String head; private String body; private String foot; public Human(Builder builder) { this.head = builder.head...原创 2019-07-25 11:57:37 · 119 阅读 · 0 评论 -
结构型模式-装饰器模式
1.装饰器模式public interface Phone { void call();}public class IPhone implements Phone { @Override public void call() { System.out.println("使用苹果手机打电话"); }}/** * 装饰模式 * * 1:装饰类,需要去实现被装饰...原创 2019-07-30 09:51:13 · 125 阅读 · 0 评论 -
创建型模式-单例模式
1.单例模式 示例//单例特点:提供唯一实例,不能由别的对象来new,暴露提供实例的方法//恶汉式,线程安全public class EagerSingleton{ //(虚拟机采用了CAS配上失败重试的方式保证更新更新操作的原子性和TLAB两种方式来解决线程安全问题) private static EagerSingleton instance = new EagerSi...原创 2019-07-24 16:19:59 · 108 阅读 · 0 评论 -
创建型模式-抽象工厂模式
1.抽象工厂模式定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中。简单工厂if…else if…else放在工厂类中,势必造成工厂类无限庞大,抽象工厂模式中,核心工厂类不再负责对象的创建,而是将具体的创建工作交给子类。2.示例//抽象工厂,不负责具体的创建对象工作public abstract class AbstractAnimalFactory{ public a...原创 2019-07-24 15:46:18 · 100 阅读 · 0 评论 -
创建型模式-简单工厂模式
1.简单工厂模式类的创建模式,又叫静态工厂模式,由一个工厂生产所需的某一类产品。2.使用简单工厂的好处为了解耦。类A多次引用类B后,假如有一个类C和类B实现了同一接口,系统需要把B类修改成C类,程序不得不重写A类代码。有一个办法就是写一个工厂IFactory,A与IFactory耦合,修改一下,让所有的类都实现C接口并且IFactory生产出C的实例就可以了。3.示例public i...原创 2019-07-24 14:51:28 · 89 阅读 · 0 评论 -
行为型模式-观察者模式
1.观察者模式观察者模式也可以叫发布-订阅模式,是一种事件监听机制,多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。2.示例/** * 抽象主题角色(被观察者/发布者) */public abstract class Subject{ private List<Observer> list = n...原创 2019-08-01 13:40:17 · 133 阅读 · 0 评论