设计模式
2017-04-20 10:44:12 0 举报
设计模式是一种在软件设计过程中反复出现的、经过验证的、可重用的解决方案。它提供了一种用于处理常见问题的方法,使开发人员能够更有效地创建和维护软件。设计模式通常涉及类和对象之间的关系,以及如何将它们组合在一起以实现特定功能。常见的设计模式包括单例模式、工厂模式、观察者模式等。使用设计模式可以提高代码的可读性、可维护性和可扩展性,同时减少冗余代码和潜在的错误。
作者其他创作
大纲/内容
Product
原型模式
ConcreteStragetyB
+ algorithm()
ConcretePrototype
+ clone()
工厂方法模式
ConcreteFactoryB
+ createProductB():AbstractProductB+ createProductA():AbstractProductA
Builder
+ buildPartA():void+ buildPartB():void+ buildPartC():void
+ method() : void
ConcreteProductB1
ConcreteStragetyA
1 注意点:原型的基本类型的属性直接赋值给clone出来的对象不会对原型有影响,引用类型的属性直接赋值以后,如果修改clone对象的中的引用类型的值将会导致影响原数据。接口Cloneable只是一个标识。当重写clone()方法时,如果没有实现Cloneable接口。将会报错。2场景:操作clone出来的数据,不会对原数据造成影响。3 源码中的体现:ArrayList Intent
ConcreteFactory
+ createProduct():Product
策略模式
Context
+ setState()+ doSomething()
1 举例 : Q7车厂和Q5车厂的 轮胎和底盘2 Android源码中的体现:Android底层对MediaPlayer的实现
ConcreteObserver
+ update(Object)
AbstractProductA
Subject
+ algorithm()+ setStragety()
ConcreteCommand
- receiver: Receiver
+ConcreteCommand(Receier)+ execute():void
State
+ doSomething()
Director
+ construct()
观察者模式
ConcreteStateyB
ConcretFactoryA
+ createProductA():AbstractProductA+ createProductB():AbstractProductB
1 示例:不同状态对同一行为有不同表现2 源码中的体现:WIFI状态管理
1 场景:构建复杂对象,并且许多参数都是默认参数时。2 源码中的体现:Dialog的创建
1 场景:全局保证对象的唯一性。2 源码中的体现:LayoutInflater
Observer
单例模式
1 场景:需要创建的对象比较复杂时2 Anroid源码中的体现:ArrayList中的iterator
Client
解释器模式
命令模式
2 Anroid源码中的体现:PackageManagerService
Builder模式
ConcreteHandler2
+ handleRequest(String):void
责任链模式
Prototype
Stragety
抽象工厂模式
Singleton
+ getInstance()- Single()
ConcreteProductB2
1 源码中的体现:View的事件分发
AbstractFactory
Handler
- successor : Handler
ConcreteProduct
Factory
Command
+ execute():void
Receiver
- command: Command
+ Invocer(Command)+ action():void
2 Anroid源码中的体现:事件输入系统介绍
1 场景:避免使用if else来控制逻辑。2 源码中的体现:时间插值器
ConcretBuilder
AbstractProductB
Invoker
2 源码中的体现:ListView中的Adapter BroadCastReceiver
ConcreteProductA1
ConcreteStateA
ConcreteProductA2
ConcreteHandler1
状态模式
0 条评论
回复 删除
下一页