工厂模式
创建一个工厂类,在工厂类中执行实例化对象的动作。而调用方只需要传入工厂对象所能够接受的名称,即可获得对象。
在工厂中有if,else根据传入的不同名称返回不同的对象。
抽象工厂模式
用一个工厂类去创建另一个工厂类,本质还是通过if else。
单例模式
这是一个很有用的模式,让一个对象在全局只被实例化一次。使用单例模式尤其要注意,对象的属性不应该被随意更改,因为所有的请求或者进程使用的都是同一个。对于Java来说,程序运行后只有同一个。对于PHP-FPM来说,每一个请求都创建一个新的对象,可以根据实际逻辑修改属性。
建造者模式
即构造一个复杂对象的设计模式,使用层层封装构造出一个复杂对象。并没有什么特点。
原型模式
通过克隆获得对象。将已创建好的类,存储在hashMap中或其他什么地方,被存储起来的对象即为原型。再次尝试实例化该类时,不再去new对象,而是从原型中克隆对象。
适配器模式
创建一个适配器对象,在适配器对象内if else。
桥接模式
通过依赖注入解耦抽象类和实现类。
如下代码可看到new RedCircle()即为依赖注入。
public class BridgePatternDemo {
public static void main(String[] args) {
Shape redCircle = new Circle(100,100, 10, new RedCircle());
Shape greenCircle = new Circle(100,100, 10, new GreenCircle());
redCircle.draw();
greenCircle.draw();
}
}
过滤器模式
可以用于过滤数据。定义过滤器A,过滤器B,过滤器C每种过滤器只筛选一种条件。再定义一个过滤器类,在里面综合使用ABC。
策略模式
不同的策略类继承一个策略接口,实现同一个方法,但各个方法内实现各自不同的策略。调用时,同样通过依赖注入的方式,将所使用的策略对象传入。该模式与桥接模式十分相似。
观察者模式
主类中维护一个数组,数组中包含了所有观察者对象。当主类发现变更时,像所有观察者发送通知。
《“设计模式”》 有 1 条评论
Hi, this is a comment.
To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.
Commenter avatars come from Gravatar.