Padrão para separar dados de ações/comportamento

Tenho uma classe Compra que possue valores básicos persistidos no banco via Hibernate. (um amigo preparou isto para mim).

Tenho de agregar a esta classe varios atributos e metodos para ela refletir as necessidades do negocio.

Sei que existe um padrão para separar os dados do comportamento, permitindo que a classe compra a persisitir seja “pura” e outra classe trate os detalhes.

No caso abaixo, deixar precoTabela, descontoCanal na classe "pura’ e tratar descontoCanalValor e descontoPromocionalValor em outra classe.

" public class Compra implements Entity {

private Double precoTabela;
private Double descontoCanal;
private Double descontoPromocional;
private Double descontoOutros;
private Double IPI;

public Double getDescontoCanal() {
return descontoCanal;
}
public Double getDescontoCanalValor(){
return (new Double(precoTabela.doubleValue()
* descontoCanal.doubleValue()));
}
public Double getDescontoPromocional() {
return descontoPromocional;
}
public Double getDescontoPomocionalValor(){
return (new Double((precoTabela.doubleValue() -
getDescontoCanalValor().doubleValue())
* descontoPromocional.doubleValue()));
"

Agradeço a ajuda.