Noções básicas de padrões de fachada para o desenvolvimento ios

O padrão de fachada fornece uma única interface, simplificado para utilizar a funcionalidade fornecida para o desenvolvimento do iOS. Fachadas são frequentemente utilizados para simplificar o acesso às instalações de um subsistema. O próximo conjunto de código usa o padrão de fachada para desenhar um gráfico de pizza utilizando Circle, Line, e classes de pontos para representar as tortas.

Video: CocoaTalk #7 Desenvolvimento iOS: Como começar?

O código começa com o seguinte arquivo de interface da classe PieChart. O inicializador initWithViewAndSegments define a envolvente vista do gráfico de pizza, as coordenadas do centro, o raio, o número de fatias, e a proporção de cada fatia. Há também um método de desenho que desenha o gráfico circular no interior da sua vista envolvente.

#import @interface PieChart: NSObject {// Variáveis ​​membro @ privada (UIView *) enclosingView- @ private int radius- @ private int numberOfSlices- @ private float [] pieProportions -} - (ID) initWithViewAndSegments: (UIView *) enclosingView: (Point *) centro: (int) raio: (int) numberOfSlices: float [] pieProportions - (void) desenhar - // Outras operações-d

Você pode ver como é fácil para um programa cliente da classe PieChart para desenhar um gráfico de pizza. Todo o programa tem a fazer é inicializar o gráfico usando initWithViewAndSegments e depois chamar desenhar.

Video: Desenvolvimento IOS com Swift Aula 01



Agora compare o uso anterior de uma fachada para a implementação do método draw (pseudocódigo mostrado aqui), que é o que alguém diretamente usando Círculo e linha objetos para desenhar o gráfico de pizza teria que fazer:

@implementation PieChart ... - (void) desenhar { Círculo * = pieChartCircle [[Alloc círculo] initWithViewRadiusAndOrigin : EnclosingView: raio: centro] -pieChartCircle.draw- // desenhar o circlefor (int k = 0- k lt; = numberOfPies-1- k ++) {// para cada piePoint * endPoint- // ponto final de raio que limita uma slopeOfLine piefloat - // Calcular slopeOfLine de pieProportions [k] .// 100% = gt; 360 graus ... // Calcular ponto final da linha radial desde a origem, inclinação // e comprimento (= raio) ... // Desenha o lineLine * radialLine = [[Linha Alloc] initWithCoordinates: enclosingView: Centro: endPoint] -oneLine.draw-} } ...

Para ser completo, vamos mostrar as interfaces para Circle, Line, e Ponto aqui:

Video: Desenvolvimento iOS - Primeiros passos

@ interface Circle: NSObject {// Variáveis ​​membro @ UIView privada * enclosingView- @ private int radius- @ private int centerX- @ centerY int privado -} - (id) initWithViewRadiusAndOrigin: (UIView *) enclosingView: (int) raio :( Point *) centro - (void) desenhar - // Outras operações-d de interface @ Line: NSObject {// variáveis ​​membro @ ponto privada * início, * final} - (ID) initWithCoordinates: (UIView *) enclosingView: (ponto ) * começar: (Point) * final - (void) desenhar - // Outro ponto operações de d @ Interface: NSObject {// variáveis ​​membro @ private int x, y -} - (ID) initWithCoordinates: (int) x : (int) y - d

Em relação às técnicas e princípios OO, você pode ver claramente que Fachada usa delegação extensivamente. Além disso, se uma fachada é bem concebido, que ilustra os princípios de OO esconder informação, de alta coesão, e baixo acoplamento muito bem.


Publicações relacionadas