DesignPattern-原则
2017-02-16 21:10:26 0 举报
设计模式学习
作者其他创作
大纲/内容
ExcelDataConvertor
+ readFile () : Void
CustomerDataDisplay
+ dataRead()+ transformToXML()+ createChart()+ displayChart()+ createReport()+ displayReport()
CommonCustomer
接口隔离在一个类中有多种方法时,我们可以对有相关联系方法进行抽取为一个类这样使用相关方法更加灵活,也方便后面方法的拓展在遵循原则时不能滥用,提取更多类增加管理的难度
DataHandler
+ dataRead ()
依赖倒转原则通常使用的注入方式:(1)构造注入:通过构造函数传入具体类的对象(2)设置注入:通过 setter 方法传入具体的对象(3)接口注入:通过在接口声明的业务方法传入具体对象总的来说:构造,设置和接口初始化👺👨🏻💻
(5)接口隔离原则:在实现具体的功能过程中,要实现专门接口,而不是使用单一接口
EmailSender
+ send(CommonCustomer) : Void+ send(VIPCustomer) : Void
CustomerDAO
+ addCustomers () : Void
ComboBox
Button
(3)里氏代换原则:所有引用基类的地方必须使用透明的其子类的对象使用里氏代换目的是为提取公有类接口,减少代码量
BarChart
+ display() : Void
TextBox
OracleDBUtil
+ getConnection() : Connection
(2)开闭原则:一个软件实体应尽量对拓展开放,对修改关闭软件实体一般是指:软件模块,多个类组成的局部结构或者一个独立的类
PieChart
单一(图2)
List
- util : DBUtil
+ findCustomer(): List
Customer
# name : NSString# email : NSString
+ getName () : NSString+ setName () : Void+ getEmail () : NSString+ setEmail () : Void
VIPCustomer
- name : NSString- email : NNString
+ getName () : NSString+ setName () : Void+ getEmail () : NSString+ setEmail () : Void
ConcreteClass
+ dataRead ()+ createChart ()+ displayChart ()
BaseChart
+display() : Void
CharDisplay类中代码实现- (Void)display:(NSString *type) { if([type isEqual:\"@\"pie\"]) { PieChart pie = [[PieChart alloc] init]; pie.display(); }else if([type isEqual:@\"bar\"]){ BarChart bar = [[BarChart alloc] init]; bar.display(); }}当图标显示的过程中如果添加新的类,就要对CarDisplay 进行修改可以对其进行重新修改和优化
DBUtil
+ getConnect(): Connect
设计模式-原则
开闭(图1)
DataConvertor
TXTDataConvertor
Label
ChartHandler
+ createChart ()+ displayChart ()
CustomDataChart
+ getConnect(): Connection+ findCustomers(): List+ createChart(): Void+ displayChart(): Void
(4)依赖倒转原则:抽象不依赖于细节,细节依赖于抽象。换言之,针对接口编程,不是针对细节编程
ChartDisplay
- chart :BaseChart
+ setChart(BaseChart chart) : Void+ display() : Void
里氏代换原则:(1)子类必须实现父类的所有的方法(2)可以把父类设计为抽象类或者是接口,子类继承父类或者是实现接口,实现父类中的声明。运行时使用子类来替换父类的实例
XMLTranformer
+ transformToXML ()
+ addCustomer () : Void
Mediator
+ send(Customer customer) : Void
设计模式有 7 大原则:单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成复用原则和迪米特法原则。
Client
设计模式学习
ReportHandler
+ createReport ()+ displayReport ()
(1)单一职责原则:一个类在功能中只完成单一对应职能这样可以更好实现:高内聚、低耦合方针
单一(图1)
+ display(NSString type): Void
使用复用过程中:super.getConnection();使用合成复用原则:util.getConnection
(7)迪米特法则:一个软件实体与其他的软件实体应该很少有相互作用
(6)合成复用原则:在复用的过程中,要尽量使用对象组合而不是继承来达到重复使用的目的
- dao : CustomerDAO
+ createChart(): Void+ displayChart(): Void
0 条评论
下一页