Agradeço cada uma dessas visitas. Sejam sempre bem-vindos!!!

Meus melhores posts

terça-feira, 29 de julho de 2008

5 dicas para maltratar o cliente


A compra de um produto é um tipo de contrato estabelecido entre o cliente e o lojista, onde a cláusula principal é “troco este produto por uma importância x de dinheiro”. Quando o cliente paga em dia e o produto funciona corretamente , esta cláusula é suficiente para que ambas as partes se sintam satisfeitas, mas … se o produto “der pau” temos que ler as outras linhas do contrato, além do que está escrito nas entrelinhas.

Nesta situação é que o lojista pode aplicar as 5 dicas para maltratar o cliente e se isentar das suas responsabilidades no contrato e na negociação.

Para exemplificar vamos utilizar o seguinte estudo de caso: o cliente, doravante denominado Otário, compra um produto com 1 ano de garantia do lojista, doravante denominado Esperto. No sexto mês o produto apresenta um defeito. Otário vai até o Esperto e a começa a chateação. Vamos ver as 5 frases que faz Otário se sentir apenas um cliente, digo um otário.

1 ------------
Esperto diz: temos um prazo de “N” dias para solucionar o problema.
Otário pensa: será que isso quer dizer que só vão resolver o problema no e”N”éssimo dia?

2 ------------
Esperto diz: isso foi avisado no momento da compra.
Otário pensa: fazendo uma retrospectiva até o momento da compra e imagina o vendedor dizendo “é um ótimo produto, mas se ele quebrar o senhor terá que esperar o prazo de “N” dias para tê-lo de volta, posso embrulhar?” … claro, pode sim e põe a conta no nome do Otário.

3 ------------

Esperto diz: temos que seguir os procedimentos estabelecidos com nossos fornecedores.
Otário pensa: fornecedores?! Mas eu não tenho nenhum contrato com os fornecedores desse Esperto. Ninguém me chamou para a reunião de definição de procedimentos com os fornecedores!!!

4 ------------

Esperto diz: Em qualquer loja que você for vão te dizer a mesma coisa.
Otário pensa: devo levar o produto quebrado em “qualquer loja” para ver se ela troca para mim? Talvez “qualquer loja” possa ser mais legal comigo e resolver meu problema. Não, acho melhor deixar minha próxima compra para “qualquer loja” que não seja esta.

5 ------------
Esperto diz:
você pode ir até o PROCON que a lei diz que …
Otário pensa: meu Deus!!! Terei de ir ao PROCON??? Enfrentar filas, explicar tudo, provar que fui lesado e aguardar as negociações sem nem ao menos saber o resultado final … ai como é cansativo lutar pelos meus direitos … se os direitos são meus, porque tenho que lutar por eles??? … poxa, estou chateado!

Pronto!!! O lojista Esperto conseguiu convencer o cliente que ele é um otário e com apenas 5 frases se livrou do prejuizo de ter que trocar o produto. A operação foi um sucesso!

De lamburja o lojista Esperto ainda conseguiu com uma eficiência incontestável que o cliente nunca mais compre dele e isso se extende para os parentes do cliente, seus amigos, seus conhecidos e todos para quem o cliente desabafar sua mágoa. Além de ter perdido os clientes que procurarem opiniões sobre a loja no google e derem de cara com o depoimento triste.

Opa, espera ai! Me perdi nos condinomes. Quem é mesmo o Otário dessa história?

Para não dizer que não falei das flores …

5 frases que o cliente sonha em ouvir nesta situação.

Em caso de conserto do produto ...

1 ------------
Lojista diz: não se preocupe, vamos solucionar o problema.
Cliente pensa: nossa, ainda bem que comprei aqui, valeu a pena pagar um pouco mais caro.

2 ------------
Lojista diz: Estamos agilizando ao máximo para minimizar o transtorno.
Cliente pensa: graças a Deus eu não estou sozinha nessa, a loja é minha parceira e divide o problema comigo.


3 ------------
Lojista diz: Manteremos o senhor informado sobre o andamento dos procedimentos.
Cliente pensa: ótimo! Assim posso me reprogramar para não atrapalhar demais meus afazeres.

Em caso de troca ...

4 ------------
Lojista diz: vamos trocar o produto imediatamente.
Cliente pensa: legal! Isso sim que é bom atendimento.

Em qualquer caso ...

5 ------------
Lojista diz: por favor, desculpe-nos pelo transtorno.
Cliente pensa: tudo bem, obrigado. Volto sempre!!!


** Ouça Aqui ** Professor Marins Podcast, fala sobre como o cliente é odiado por algumas empresas ... sendo o cliente a razão de ser de qualquer empreendimento comercial.


E como complemento ... ai está uma matéria sugerida pelo meu amigo Flávio Kenji ...

Assunto: Estratégia

Recado de Sam Walton, fundador do WAL MART (maior cadeia de varejo do mundo), fazendo a abertura de um programa de treinamento para seus funcionários:

Eu sou o homem que vai a um restaurante, senta-se à mesa e pacientemente espera, enquanto o garçom faz tudo, menos o meu pedido.

Eu sou o homem que vai a uma loja e espera calado, enquanto os vendedores terminam suas conversas particulares.

Eu sou o homem que entra num posto de gasolina e nunca toca a buzina, mas espera pacientemente que o empregado termine a leitura do seu jornal.

Eu sou o homem que explica sua desesperada e imediata necessidade de uma peça, mas não reclama quando a recebe após três semanas somente.

Eu sou o homem que, quando entra num estabelecimento comercial, parece estar pedindo um favor, ansiando por um sorriso ou esperando apenas ser notado.

Eu sou o homem que entra num banco e aguarda tranqüilamente que as recepcionistas e os caixas terminem de conversar com seus amigos, e espera pacientemente. Enquanto os funcionários trocam idéias entre si ou, simplesmente abaixam a cabeça e fingem não me ver.

Você deve estar pensando que sou uma pessoa quieta, paciente, do tipo que nunca cria problemas. Engana-se. Sabe quem eu sou?

"Eu sou o cliente que nunca mais volta!"

Divirto-me vendo milhões sendo gastos todos os anos em anúncios de toda ordem, para levar-me de novo à sua firma. Quando fui lá, pela primeira vez, tudo o que deviam ter feito era apenas a pequena gentileza, tão barata, que é um pouco mais de "CORTESIA".

"CLIENTES PODEM DEMITIR TODOS DE UMA EMPRESA, SIMPLESMENTE GASTANDO SEU DINHEIRO EM ALGUM OUTRO LUGAR".

sexta-feira, 4 de julho de 2008

Classes Abstratas, Classes Seladas e Interfaces C#


Olá,

Nada melhor do que "fazer sala" para os bons amigos. Hoje estou feliz em receber Rudson Kiyoshi Souza Carvalho para nos ajudar a construir o aprender. Ele é programador, estudante de TI e dentre tantos assuntos que tem aprendido em campo e nos cursos que tem feito, ele escolheu nos falar sobre C#.

Seu próximo desafio é ministrar voluntariamente um curso de SQL Server no campus ABC da UNIBAN para os interessados em aprender a trabalhar com banco de dados.

Suas atitudes dispensam meu testemunho, mas é bom que fique registrado aqui ... o Rudson é um profissional comprometido, um estudante com ótimo rendimento, um amigo fiel e imprescindível.

Agradecemos a boa vontade e desejamos sucesso!!!

Beijos,
Van




Trabalhando com classes abstratas, classes seladas e interfaces em C#
Por Rudson Kiyoshi Souza Carvalho


Resumo

Este artigo descreve o que são Classes Abstratas, Seladas e Interfaces, e também explica quando devemos implementar cada uma delas em nosso código.

Introdução

Utilizar classes seladas é um novo conceito adicionado ao C#. O conceito de quando utilizar cada tipo de classe pode parecer um pouco confuso no início, mas após ter entendido bem os conceitos de cada uma e entender suas similaridades, poderemos partir para um desenvolvimento mais seguro e escalável, tentarei neste artigo descrever não só cada tipo de classe, mas também descrever algumas situações que devemos usar este tipo de codificação. Os exemplos de códigos abaixo utilizam a linguagem C#.

O que é uma classe abstrata? (Abstract Class)

A classe abstrata é um tipo de classe que somente pode ser herdada e não instanciada, de certa forma pode se dizer que este tipo de classe é uma classe conceitual que pode definir funcionalidades para que as suas subclasses (classes que herdam desta classe) possam implementá-las de forma não obrigatória, ou seja ao se definir um conjunto de métodos na classe abstrata não é de total obrigatoriedade a implementação de todos os métodos em suas subclasses, em uma classe abstrata os métodos declarados podem ser abstratos ou não, e suas implementações devem ser obrigatórias na subclasse ou não, quando criamos um método abstrato em uma classe abstrata sua implementação é obrigatória, caso você não implemente o mesmo o compilador criará um erro em tempo de compilação.

Exemplo de implementação retirado do books online em C#.

abstract class formaClasse
{
abstract public int Area();
}
class quadrado : formaClasse
{
int x, y;
// Se não for implementado o método Area()
// será gerado um compile-time error.
public override int Area()
{
return x * y;
}
}

O que é uma Interface? (Interface)

As interfaces são fundamentais em um sistema orientado a objetos, quando dizemos que um objeto é a instância de uma classe, na verdade queremos dizer, que este objeto implementa a interface definida pela classe, ou seja uma interface define as operações que um objeto será obrigado a implementar. Para cada operação declarada por um objeto deve ser especificado o nome da operação, os objetos que esta operação aceita como parâmetro e o tipo de valor retornado pela operação; este conjunto de informações sobre uma determinada operação tem o nome de assinatura da operação, e um conjunto de assinaturas de operações dá-se o nome de interface.

É importante lembrar que uma interface nunca contém implementação, ou seja numa interface não se pode definir campos, pois o mesmo é uma implementação de um atributo objeto, a interface também não permite construtores pois num contrutor temos as instruções usadas para inicializar campos. Para podermos usar uma interface devemos criar uma classe ou estrutura e herdar da interface, com isso é obrigatório implementar todos os métodos da interface.


Exemplo de implementação retirado do books online em C#.

interface IExemploInterface
{
void ExemploMetodo();
}

class Implementacaoclasse : IExemploInterface
{
// Implementação explicita da interface
void IExemploInterface.ExemploMetodo()
{
// Implementação do método
}

static void Main()
{
// Declarando uma instancia de uma interface
IExemploInterface obj = new Implementacaoclasse();

// chame o método.
obj.SampleMethod();
}
}

Classes Abstratas X Interfaces

Uma classe abstrata pode conter métodos completos ou incompletos. Uma Interface pode conter apenas a assinatura de um método, mas nenhum corpo ou implementação. Portanto, em uma classe abstrata pode-se implementar métodos, mas em uma Interface não. Uma classe abstrata pode conter campos, construtores, ou destrutores e aplicar propriedades. Uma interface não pode conter campos, construtores, ou destrutores pode possuir apenas a propriedade da assinatura, mas não a implementação. Uma classe abstrata não suporta múltiplas heranças, mas uma interface pode suportar múltiplas herança. Assim, uma classe pode herdar várias interfaces, mas apenas uma classe abstrata. Uma classe que implementa uma interface tem de obrigatoriamente implementar todos os métodos da interface, mas o mesmo não é exigido no caso de uma classe abstrata. As classes abstratas são mais rápidas que as interfaces.

O que é uma classe selada? (Sealed Class)

Uma classe selada é utilizada para restringir características da herança do objeto, quando uma classe é definida como sealed, está classe não poderá ser herdada, caso você tente o compilador criara um erro em tempo de compilação, após criar uma classe selada pode se observar que o intelisense não mostra o nome da classe definida como sealed quando você tenta criar uma herança para novas classes.

Exemplo de implementação retirado do books online em C#.

sealed class ClasseSelada
{
public int x;
public int y;
}

class MainClass
{
static void Main()
{
ClasseSelada sc = new ClasseSelada();
sc.x = 110;
sc.y = 150;
Console.WriteLine("x = {0}, y = {1}", sc.x, sc.y);
}
}



Então, quando devo utilizar o que?

Classes Abstratas podem adicionar mais funcionalidades, sem destruir as funcionalidades das classes filhos que poderiam estar usando uma versão mais antiga. Classes abstratas fornecem uma maneira simples e fácil para versionar nossos componentes. Através da atualização da classe base, todas as classes que herdam são atualizadas automaticamente com a mudança. Em uma interface, a criação de funções adicionais terá um efeito sobre suas classes filhos, devido à necessidade de implementação dos Métodos criados na interface. Classes abstratas deveriam ser usadas principalmente para objetos que estão estritamente relacionados, enquanto o uso de interfaces é mais adequado para fornecer funcionalidade comum a classes independentes.

Digamos que existem duas classes, de pássaros e de aviões, e nas duas exista os métodos chamados voar(). Seria estranho para uma classe aviões herdar a partir de umas classe pássaros apenas porque necessita do método voar(). Em vez disso, o método voar() deve ser definido em uma interface e em ambas as classes pássaros e aviões devem implementar a interface. Se quisermos proporcionar uma funcionalidade em comum para os componentes, devemos utilizar uma classe abstrata.

Classes abstratas nos permitem implementar parcialmente uma classe, enquanto a interface não contem a implementação de qualquer membro. Por isso, a seleção de interface ou classes abstratas depende das necessidades e design do nosso projeto. Podemos fazer uma classe abstrata, interface, ou até uma combinação de ambas dependendo de nossas necessidades. Se desejarmos criar uma classe ou método interno para um componente ou library o ideal é utilizar o tipo sealed porque qualquer tentativa de anular algumas das suas funcionalidades não será permitida.

Nós podemos marcar uma classe ou método como selados por motivos comerciais, a fim de impedir um terceiro de modificar nossa classe. Por exemplo, no .NET a string é uma classe selada. Não devemos usar a palavra-chave sealed com um método a menos que o método seja uma mudança de outro método, ou se estamos definindo um novo método e não queremos que ninguém mais o sobreponha, não se deve declará-lo como virtual em primeiro lugar. a palavra-chave selado fornece uma maneira de garantir que ao sobrepor um método seja fornecido um "final" significa que ninguém mais poderá sobrepor-lo novamente.

Conclusão

Devemos utilizar classes abstratas quando queremos compartilhar funcionalidades em comum entre classes, e utilizar interfaces quando desejamos que uma classe possua as mesmas assinaturas porem a implementação de cada método não precise ser a mesma.

Referências

Working with Abstract classes, Sealed Classes, and Interfaces in C# by SANJIT SIL

Books online Microsoft

Padrões de projeto - Erich Gamma - Ralph Johnson - John Vlissides Cod do item:110053