Skip to content

Dorisi/design-pattern-java

Repository files navigation

design-pattern-java

创建型模式

SimpleFactory 简单工厂模式

简单工厂模式包含如下角色:Factory(工厂角色)Product(抽象产品)角色ConcreteProduct(具体产品角色)

实例一(简单电视机工厂):

某电视机厂专为各知名电视机品牌代工生产各类电视机,当需要海尔牌电视机时只需要在调用该工厂的工厂方法时传入参数“Haier”,需要海信电视机时只需要传入参数“Hisense”,工厂可以根据传入的不同参数返回不同品牌的电视机。

实例二(权限管理):

在某OA系统中,系统根据对比用户在登录时输入的账号和密码以及在数据库中存储的账号和密码是否一致来进行身份验证,如果验证通过,则取出存储在数据库中的用户权限等级(以整数形式存储),根据不同的权限等级创建不同等级的用户对象,不同等级的用户对象拥有不同的操作权限。

模式应用

(1) 在JDK类库中广泛使用了简单工厂模式,如工具类DateFormat,它用于格式化一个本地日期或者时间。
(2) Java加密技术

FactoryMethod 工厂方法模式(工厂模式)

工厂方法模式包含如下角色:Product(抽象产品)ConcreteProduct(具体产品)Factory(抽象工厂)ConcreteFactory(具体工厂)

实例一(电视机工厂):

将原有的工厂进行分割,为每种品牌的电视机提供一个子工厂,海尔工厂专门负责生产海尔电视机,海信工厂专门负责生产海信电视机,如果需要生产TCL电视机或创维电视机,只需要对应增加一个新的TCL工厂或创维工厂即可,原有的工厂无须做任何修改,使得整个系统具有更加的灵活性和可扩展性。

实例二(日志记录器):

某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。

模式应用

(1) java.util.Collection接口的iterator()方法
(2) Java消息服务JMS(Java Messaging Service)
(3) JDBC中的工厂方法

AbstractFactory 抽象工厂模式

建造者模式

原型模式

单例模式

23种设计模式,持续更新...

About

23种设计模式,持续更新...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages