# DesignPatternDemo **Repository Path**: lodzz/DesignPatternDemo ## Basic Information - **Project Name**: DesignPatternDemo - **Description**: Create design pattern demo - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-22 - **Last Updated**: 2021-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 设计模式 这个Demo里包括了基础的设计模式样例,可以通过这些case更好的了解每种设计模式。 持续更新中... ### 1、简单工厂(factory.simplefactory) 我采用了加减法运算的case来模拟简单工厂,通过传入运算类型标识符来创建对应的运算类 ### 2、工厂方法(factory.factorymethod) 这里用一个创建不同汽车品牌的case来描述工厂方法,有新的汽车品牌则再新增对应的工厂类即可 ### 3、抽象工厂(factory.abstractfactory) 这里用了多数据库切换的case来描述抽象工厂,并且使用反射方法来解耦工厂类对数据库类型的依赖,通过在AndroidManifest.xml中配置数据库类型,来动态获取对应的工厂类 ### 4、策略模式(strategy) 我用了对商品3种不同的价格计算方法(正常价格、打折价格、返现价格)来模拟策略模式 ### 5、装饰者模式(decorator) 通过汉堡需要添加不同的配料来模拟装饰者模式,case中对装饰顺序没有做要求,通过添加配料来模拟装饰 ### 6、静态代理(proxy.staticproxy) 通过抽象行为接口来模拟静态代理 ### 7、动态代理(proxy.dynamicproxy) 通过InvocationHandler实现,相比较静态代理,在代理类里面不需要再去实现接口方法,减少了维护量 ### 8、原型模式(prototype) 通过简历克隆的例子描述原型模式,克隆分为浅克隆和深克隆,浅克隆只能克隆简单数据,深克隆可以克隆类中其他的对象 ### 9、模版方法模式(template) 通过试卷模版由不同学生答题来模拟模版方法模式的实现(即父类的抽象方法由子类具体实现) ### 10、外观模式(facade) 将一些耦合度高的逻辑通过简单的接口内聚起来,减少他们之间的依赖